From 13da012766cd06d14dba6b8166d0ba5e18cc55f7 Mon Sep 17 00:00:00 2001 From: Latent Prion Date: Sat, 28 Feb 2026 04:13:44 -0400 Subject: [PATCH] Move mustache templates into Cppbessot main dir --- cmake/dbGenCpp.cmake | 8 +++++++- cmake/dbGenMigrations.cmake | 3 ++- cmake/dbGenODB.cmake | 3 ++- cmake/dbGenSqlDDL.cmake | 3 ++- cmake/dbGenerationCommon.cmake | 6 ++++-- cmake/dbSchemaCheck.cmake | 3 ++- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/cmake/dbGenCpp.cmake b/cmake/dbGenCpp.cmake index fa012c9..e6301d1 100644 --- a/cmake/dbGenCpp.cmake +++ b/cmake/dbGenCpp.cmake @@ -1,6 +1,7 @@ include_guard(GLOBAL) include("${CMAKE_CURRENT_LIST_DIR}/dbGenerationCommon.cmake") +set(_CPPBESSOT_DB_GEN_CPP_DIR "${CMAKE_CURRENT_LIST_DIR}") function(cppbessot_add_db_gen_cpp_target version) # Purpose: Register C++ model generation target using checked-in templates. @@ -12,9 +13,14 @@ function(cppbessot_add_db_gen_cpp_target version) # - Files under `/generated-cpp-source`. cppbessot_validate_schema_version("${version}") cppbessot_get_version_dir(_version_dir "${version}") + if(DEFINED CPPBESSOT_MODULE_ROOT AND NOT "${CPPBESSOT_MODULE_ROOT}" STREQUAL "") + set(_module_root "${CPPBESSOT_MODULE_ROOT}") + else() + get_filename_component(_module_root "${_CPPBESSOT_DB_GEN_CPP_DIR}/.." ABSOLUTE) + endif() set(_openapi_file "${_version_dir}/openapi/openapi.yaml") - set(_template_dir "${_version_dir}/openapi/templates/cpp-odb-json") + set(_template_dir "${_module_root}/openapi/templates/cpp-odb-json") set(_template_config "${_template_dir}/config.yaml") set(_output_dir "${_version_dir}/generated-cpp-source") diff --git a/cmake/dbGenMigrations.cmake b/cmake/dbGenMigrations.cmake index 3ea9be9..390a77d 100644 --- a/cmake/dbGenMigrations.cmake +++ b/cmake/dbGenMigrations.cmake @@ -1,6 +1,7 @@ include_guard(GLOBAL) include("${CMAKE_CURRENT_LIST_DIR}/dbGenerationCommon.cmake") +set(_CPPBESSOT_DB_GEN_MIGRATIONS_DIR "${CMAKE_CURRENT_LIST_DIR}") function(cppbessot_add_db_gen_migrations_target from_version to_version) # Purpose: Register migration SQL generation between two schema versions. @@ -29,7 +30,7 @@ function(cppbessot_add_db_gen_migrations_target from_version to_version) -DCPPBESSOT_FROM_VERSION_DIR=${_from_dir} -DCPPBESSOT_TO_VERSION_DIR=${_to_dir} -DCPPBESSOT_MIGRATION_DIR=${_migration_dir} - -P "${CMAKE_CURRENT_LIST_DIR}/scripts/run_odb_migrations.cmake" + -P "${_CPPBESSOT_DB_GEN_MIGRATIONS_DIR}/scripts/run_odb_migrations.cmake" COMMENT "Generating DB migrations: ${from_version} -> ${to_version}" VERBATIM ) diff --git a/cmake/dbGenODB.cmake b/cmake/dbGenODB.cmake index bf9d055..e52e827 100644 --- a/cmake/dbGenODB.cmake +++ b/cmake/dbGenODB.cmake @@ -1,6 +1,7 @@ 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 version) # Purpose: Register ODB ORM generation target for sqlite and postgre backends. @@ -17,7 +18,7 @@ function(cppbessot_add_db_gen_odb_target version) COMMAND "${CMAKE_COMMAND}" -DCPPBESSOT_ODB_EXECUTABLE=${CPPBESSOT_ODB_EXECUTABLE} -DCPPBESSOT_VERSION_DIR=${_version_dir} - -P "${CMAKE_CURRENT_LIST_DIR}/scripts/run_odb_logic.cmake" + -P "${_CPPBESSOT_DB_GEN_ODB_DIR}/scripts/run_odb_logic.cmake" DEPENDS db_gen_cpp_headers COMMENT "Generating ODB ORM sources for ${version} (sqlite + postgre)" VERBATIM diff --git a/cmake/dbGenSqlDDL.cmake b/cmake/dbGenSqlDDL.cmake index 106f9d4..80f9507 100644 --- a/cmake/dbGenSqlDDL.cmake +++ b/cmake/dbGenSqlDDL.cmake @@ -1,6 +1,7 @@ include_guard(GLOBAL) include("${CMAKE_CURRENT_LIST_DIR}/dbGenerationCommon.cmake") +set(_CPPBESSOT_DB_GEN_SQL_DDL_DIR "${CMAKE_CURRENT_LIST_DIR}") function(cppbessot_add_db_gen_sql_ddl_target version) # Purpose: Register SQL DDL snapshot generation target for supported backends. @@ -17,7 +18,7 @@ function(cppbessot_add_db_gen_sql_ddl_target version) COMMAND "${CMAKE_COMMAND}" -DCPPBESSOT_ODB_EXECUTABLE=${CPPBESSOT_ODB_EXECUTABLE} -DCPPBESSOT_VERSION_DIR=${_version_dir} - -P "${CMAKE_CURRENT_LIST_DIR}/scripts/run_odb_sql_ddl.cmake" + -P "${_CPPBESSOT_DB_GEN_SQL_DDL_DIR}/scripts/run_odb_sql_ddl.cmake" DEPENDS db_gen_cpp_headers COMMENT "Generating SQL DDL snapshots for ${version} (sqlite + postgre)" VERBATIM diff --git a/cmake/dbGenerationCommon.cmake b/cmake/dbGenerationCommon.cmake index fd954bd..ea84d81 100644 --- a/cmake/dbGenerationCommon.cmake +++ b/cmake/dbGenerationCommon.cmake @@ -4,6 +4,8 @@ if(NOT DEFINED CPPBESSOT_WORKDIR) set(CPPBESSOT_WORKDIR "db" CACHE STRING "CppBeSSOT schema root folder, relative to PROJECT_SOURCE_DIR or absolute path") endif() +set(_CPPBESSOT_GENERATION_COMMON_DIR "${CMAKE_CURRENT_LIST_DIR}") + function(cppbessot_abs_path out_var input_path) # Purpose: Resolve a path to an absolute path anchored at PROJECT_SOURCE_DIR # when the input is relative. @@ -30,8 +32,8 @@ function(cppbessot_initialize_paths) # - CPPBESSOT_CMAKE_DIR (PARENT_SCOPE): Absolute module directory path. # - CPPBESSOT_MODULE_ROOT (PARENT_SCOPE): Module root directory path. # - CPPBESSOT_WORKDIR_ABS (PARENT_SCOPE): Absolute schema root path. - get_filename_component(CPPBESSOT_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}" ABSOLUTE) - get_filename_component(CPPBESSOT_MODULE_ROOT "${CPPBESSOT_CMAKE_DIR}/../.." ABSOLUTE) + get_filename_component(CPPBESSOT_CMAKE_DIR "${_CPPBESSOT_GENERATION_COMMON_DIR}" ABSOLUTE) + get_filename_component(CPPBESSOT_MODULE_ROOT "${CPPBESSOT_CMAKE_DIR}/.." ABSOLUTE) cppbessot_abs_path(CPPBESSOT_WORKDIR_ABS "${CPPBESSOT_WORKDIR}") set(CPPBESSOT_CMAKE_DIR "${CPPBESSOT_CMAKE_DIR}" PARENT_SCOPE) diff --git a/cmake/dbSchemaCheck.cmake b/cmake/dbSchemaCheck.cmake index 6a25cc5..0f2b4f5 100644 --- a/cmake/dbSchemaCheck.cmake +++ b/cmake/dbSchemaCheck.cmake @@ -1,6 +1,7 @@ include_guard(GLOBAL) include("${CMAKE_CURRENT_LIST_DIR}/dbGenerationCommon.cmake") +set(_CPPBESSOT_DB_SCHEMA_CHECK_DIR "${CMAKE_CURRENT_LIST_DIR}") function(cppbessot_add_db_check_schema_changes_target) # Purpose: Register a manual target that reports git-tracked schema changes. @@ -17,7 +18,7 @@ function(cppbessot_add_db_check_schema_changes_target) -DCPPBESSOT_GIT_EXECUTABLE=${CPPBESSOT_GIT_EXECUTABLE} -DCPPBESSOT_WORKDIR_ABS=${_workdir} -DCPPBESSOT_PROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} - -P "${CMAKE_CURRENT_LIST_DIR}/scripts/check_schema_changes.cmake" + -P "${_CPPBESSOT_DB_SCHEMA_CHECK_DIR}/scripts/check_schema_changes.cmake" COMMENT "Checking for schema changes under ${CPPBESSOT_WORKDIR}" VERBATIM )