Files
cppbessot/cmake/dbSchemaCheck.cmake

28 lines
1.2 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_SCHEMA_CHECK_DIR "${CMAKE_CURRENT_LIST_DIR}")
2026-02-28 02:47:18 -04:00
function(cppbessot_add_db_check_schema_changes_target)
# Purpose: Register a manual target that reports git-tracked schema changes.
# Inputs:
# - CPPBESSOT_WORKDIR: Schema root directory (relative or absolute).
# - CPPBESSOT_GIT_EXECUTABLE: Git executable path (set by dependency check).
# Outputs:
# - CMake target: `db_check_schema_changes` (EXCLUDE_FROM_ALL).
# - Runtime warning/send-error from the script when changes are detected.
cppbessot_abs_path(_workdir "${CPPBESSOT_WORKDIR}")
add_custom_target(db_check_schema_changes
COMMAND "${CMAKE_COMMAND}"
-DCPPBESSOT_GIT_EXECUTABLE=${CPPBESSOT_GIT_EXECUTABLE}
-DCPPBESSOT_WORKDIR_ABS=${_workdir}
-DCPPBESSOT_PROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR}
-P "${_CPPBESSOT_DB_SCHEMA_CHECK_DIR}/scripts/check_schema_changes.cmake"
2026-02-28 02:47:18 -04:00
COMMENT "Checking for schema changes under ${CPPBESSOT_WORKDIR}"
VERBATIM
)
set_target_properties(db_check_schema_changes PROPERTIES EXCLUDE_FROM_ALL TRUE)
endfunction()