cmake: Add support for builtin codegen target

Additionally, this change removes unnecessary braces in the `if()`
command for improved robustness, readability and consistency with CMake
guidelines.
This commit is contained in:
Hennadii Stepanov
2025-02-13 12:29:53 +00:00
parent a8c78a0574
commit ecf54a32ed
2 changed files with 17 additions and 1 deletions

View File

@ -7,6 +7,14 @@ macro(set_add_custom_command_options)
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.27)
set(DEPENDS_EXPLICIT_OPT DEPENDS_EXPLICIT_ONLY)
endif()
set(CODEGEN_OPT "")
if(POLICY CMP0171)
cmake_policy(GET CMP0171 _cmp0171_status)
if(_cmp0171_status STREQUAL "NEW")
set(CODEGEN_OPT CODEGEN)
endif()
unset(_cmp0171_status)
endif()
endmacro()
# Specifies JSON data files to be processed into corresponding
@ -20,6 +28,7 @@ function(target_json_data_sources target)
COMMAND ${CMAKE_COMMAND} -DJSON_SOURCE_PATH=${CMAKE_CURRENT_SOURCE_DIR}/${json_file} -DHEADER_PATH=${header} -P ${PROJECT_SOURCE_DIR}/cmake/script/GenerateHeaderFromJson.cmake
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${json_file} ${PROJECT_SOURCE_DIR}/cmake/script/GenerateHeaderFromJson.cmake
VERBATIM
${CODEGEN_OPT}
${DEPENDS_EXPLICIT_OPT}
)
target_sources(${target} PRIVATE ${header})
@ -38,6 +47,7 @@ function(target_raw_data_sources target)
COMMAND ${CMAKE_COMMAND} -DRAW_SOURCE_PATH=${CMAKE_CURRENT_SOURCE_DIR}/${raw_file} -DHEADER_PATH=${header} -DRAW_NAMESPACE=${__NAMESPACE} -P ${PROJECT_SOURCE_DIR}/cmake/script/GenerateHeaderFromRaw.cmake
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${raw_file} ${PROJECT_SOURCE_DIR}/cmake/script/GenerateHeaderFromRaw.cmake
VERBATIM
${CODEGEN_OPT}
${DEPENDS_EXPLICIT_OPT}
)
target_sources(${target} PRIVATE ${header})