mirror of
https://github.com/latentPrion/cppbessot.git
synced 2026-04-18 02:54:23 +00:00
29 lines
1.1 KiB
CMake
29 lines
1.1 KiB
CMake
include_guard(GLOBAL)
|
|
|
|
include("${CMAKE_CURRENT_LIST_DIR}/dbGenerationCommon.cmake")
|
|
set(_CPPBESSOT_DB_GEN_ODB_DIR "${CMAKE_CURRENT_LIST_DIR}")
|
|
|
|
function(cppbessot_add_db_gen_odb_target schema_dir)
|
|
# Purpose: Register ODB ORM generation target for sqlite and postgre backends.
|
|
# Inputs:
|
|
# - schema_dir: Schema directory basename to generate for.
|
|
# - CPPBESSOT_ODB_EXECUTABLE: Path to `odb` compiler.
|
|
# Outputs:
|
|
# - CMake target: `db_gen_odb_logic` (EXCLUDE_FROM_ALL).
|
|
# - Files under `<schema_dir>/generated-odb-source/{sqlite,postgre}`.
|
|
cppbessot_validate_schema_dir_name("${schema_dir}")
|
|
cppbessot_get_schema_dir_path(_version_dir "${schema_dir}")
|
|
|
|
add_custom_target(db_gen_odb_logic
|
|
COMMAND "${CMAKE_COMMAND}"
|
|
-DCPPBESSOT_ODB_EXECUTABLE=${CPPBESSOT_ODB_EXECUTABLE}
|
|
-DCPPBESSOT_VERSION_DIR=${_version_dir}
|
|
-P "${_CPPBESSOT_DB_GEN_ODB_DIR}/scripts/run_odb_logic.cmake"
|
|
DEPENDS db_gen_cpp_headers
|
|
COMMENT "Generating ODB ORM sources for ${schema_dir} (sqlite + postgre)"
|
|
VERBATIM
|
|
)
|
|
|
|
set_target_properties(db_gen_odb_logic PROPERTIES EXCLUDE_FROM_ALL TRUE)
|
|
endfunction()
|