Files
cppbessot/cmake/dbGenSqlDDL.cmake

29 lines
1.1 KiB
CMake
Raw Permalink Normal View History

2026-02-28 02:47:18 -04:00
include_guard(GLOBAL)
include("${CMAKE_CURRENT_LIST_DIR}/dbGenerationCommon.cmake")
set(_CPPBESSOT_DB_GEN_SQL_DDL_DIR "${CMAKE_CURRENT_LIST_DIR}")
2026-02-28 02:47:18 -04:00
function(cppbessot_add_db_gen_sql_ddl_target schema_dir)
2026-02-28 02:47:18 -04:00
# Purpose: Register SQL DDL snapshot generation target for supported backends.
# Inputs:
# - schema_dir: Schema directory basename to generate for.
2026-02-28 02:47:18 -04:00
# - CPPBESSOT_ODB_EXECUTABLE: Path to `odb` compiler.
# Outputs:
# - CMake target: `db_gen_sql_ddl` (EXCLUDE_FROM_ALL).
# - Files under `<schema_dir>/generated-sql-ddl/{sqlite,postgre}`.
cppbessot_validate_schema_dir_name("${schema_dir}")
cppbessot_get_schema_dir_path(_version_dir "${schema_dir}")
2026-02-28 02:47:18 -04:00
add_custom_target(db_gen_sql_ddl
COMMAND "${CMAKE_COMMAND}"
-DCPPBESSOT_ODB_EXECUTABLE=${CPPBESSOT_ODB_EXECUTABLE}
-DCPPBESSOT_VERSION_DIR=${_version_dir}
-P "${_CPPBESSOT_DB_GEN_SQL_DDL_DIR}/scripts/run_odb_sql_ddl.cmake"
2026-02-28 02:47:18 -04:00
DEPENDS db_gen_cpp_headers
COMMENT "Generating SQL DDL snapshots for ${schema_dir} (sqlite + postgre)"
2026-02-28 02:47:18 -04:00
VERBATIM
)
set_target_properties(db_gen_sql_ddl PROPERTIES EXCLUDE_FROM_ALL TRUE)
endfunction()