mirror of
https://github.com/latentPrion/cppbessot.git
synced 2026-04-17 18:44:23 +00:00
Add auto-generation notices for generated files
This directs new devs to look for the source files instead of wasting time editing generated files.
This commit is contained in:
@@ -16,6 +16,7 @@ function(cppbessot_add_db_gen_zod_target version)
|
||||
set(_openapi_file "${_version_dir}/openapi/openapi.yaml")
|
||||
set(_output_dir "${_version_dir}/generated-zod")
|
||||
set(_output_file "${_output_dir}/schemas.ts")
|
||||
set(_prepend_notice_script "${CMAKE_CURRENT_LIST_DIR}/scripts/prepend_cppbessot_notice.cmake")
|
||||
|
||||
add_custom_target(db_gen_zod
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${_output_dir}"
|
||||
@@ -23,6 +24,9 @@ function(cppbessot_add_db_gen_zod_target version)
|
||||
"${_openapi_file}"
|
||||
--output "${_output_file}"
|
||||
--export-schemas
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-DCPPBESSOT_TARGET_FILE="${_output_file}"
|
||||
-P "${_prepend_notice_script}"
|
||||
COMMENT "Generating Zod schemas for ${version}"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
20
cmake/scripts/prepend_cppbessot_notice.cmake
Normal file
20
cmake/scripts/prepend_cppbessot_notice.cmake
Normal file
@@ -0,0 +1,20 @@
|
||||
if(NOT DEFINED CPPBESSOT_TARGET_FILE OR "${CPPBESSOT_TARGET_FILE}" STREQUAL "")
|
||||
message(FATAL_ERROR "CPPBESSOT_TARGET_FILE is required")
|
||||
endif()
|
||||
|
||||
# Some CMake command invocations can pass wrapped quotes through -D values.
|
||||
set(_target_file "${CPPBESSOT_TARGET_FILE}")
|
||||
string(REGEX REPLACE "^\"(.*)\"$" "\\1" _target_file "${_target_file}")
|
||||
|
||||
if(NOT EXISTS "${_target_file}")
|
||||
message(FATAL_ERROR "Target file does not exist: ${_target_file}")
|
||||
endif()
|
||||
|
||||
file(READ "${_target_file}" _content)
|
||||
|
||||
if(_content MATCHES "AUTO-GENERATED BY CppBeSsot")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(_notice "/*\n * AUTO-GENERATED BY CppBeSsot.\n * Direct edits are pointless: this file is regenerated.\n * Update the OpenAPI schema and/or CppBeSsot templates, then regenerate generated-* outputs.\n */\n\n")
|
||||
file(WRITE "${_target_file}" "${_notice}${_content}")
|
||||
Reference in New Issue
Block a user