Drops BUILD_GRANTLEE fallback paths from codegen macros

This commit is contained in:
berrux-dev committed 2026-09-18 17:45:15 +02:00
1 parent 9e38583785
commit c066c74d7f
1 file changed
+96 -177
@@ -164,32 +164,26 @@ MACRO(INSTALL_SHARED_FILES srcList)
ENDMACRO()
MACRO(CODEGEN_SQL srcList xmlFile_in)
IF(BUILD_GRANTLEE)
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
SET(out_dir_sql "${CMAKE_BINARY_DIR}/share/Lts/sql/")
SET(out_file_sql "${out_dir_sql}/${svcNameOut}.sql")
SET(action "SQL")
SET(_cg $<TARGET_FILE:ngl_codegen>)
ADD_CUSTOM_COMMAND(OUTPUT ${out_file_sql}
COMMAND ${CMAKE_COMMAND}
ARGS -E make_directory ${out_dir_sql}
COMMAND ${CMAKE_COMMAND} -E env QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt6/plugins/kf6/ktexttemplate ${_cg}
ARGS -s ${xmlFile_in}
-a ${action}
-o ${out_dir_sql}
-i ${CMAKE_BINARY_DIR}/service_idl_files.txt
DEPENDS ${_cg} ${xmlFile_in}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
LIST(APPEND ${srcList} ${out_file_sql})
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
SET(out_dir_sql "${CMAKE_BINARY_DIR}/share/Lts/sql/")
SET(out_file_sql "${out_dir_sql}/${svcNameOut}.sql")
SET(action "SQL")
SET(_cg $<TARGET_FILE:ngl_codegen>)
ADD_CUSTOM_COMMAND(OUTPUT ${out_file_sql}
COMMAND ${CMAKE_COMMAND}
ARGS -E make_directory ${out_dir_sql}
COMMAND ${CMAKE_COMMAND} -E env QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt6/plugins/kf6/ktexttemplate ${_cg}
ARGS -s ${xmlFile_in}
-a ${action}
-o ${out_dir_sql}
-i ${CMAKE_BINARY_DIR}/service_idl_files.txt
DEPENDS ${_cg} ${xmlFile_in}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
LIST(APPEND ${srcList} ${out_file_sql})
NGL_INSTALL(SV AAR FILES ${out_file_sql} DESTINATION share/Lts/sql)
ELSE()
# BUILD_GRANTLEE disabled: skip SQL generation
# SQL files will not be generated; modules may need pre-generated SQL files
MESSAGE(STATUS "BUILD_GRANTLEE disabled: skipping SQL generation for ${xmlFile_in}")
ENDIF()
NGL_INSTALL(SV AAR FILES ${out_file_sql} DESTINATION share/Lts/sql)
ENDMACRO()
MACRO(CODEGEN_HANDLE_SVC_XML srcList xmlFile_in)
@@ -224,60 +218,18 @@ MACRO(CODEGEN_IDL_SVC srcList xmlFile_in)
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_translation.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_translation.h")
IF(BUILD_GRANTLEE)
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc.idl.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_enums.idl.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_json.cpp.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_json.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_translation.cpp.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_translation.h.grantlee"
)
SET(idl_out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}.idl"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_enums.idl")
SET_PROPERTY(GLOBAL APPEND PROPERTY CODEGEN_IDL_FILES "${idl_out_files}")
SET_SOURCE_FILES_PROPERTIES(${idl_out_files} PROPERTIES HEADER_FILE_ONLY TRUE)
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files ${ARGN})
ELSE()
# BUILD_GRANTLEE disabled: use pre-generated files if they exist
MESSAGE(STATUS "BUILD_GRANTLEE disabled: checking for pre-generated files for ${svcNameOut}")
# Check if pre-generated .idl files exist in source directory
SET(source_idl "${CMAKE_CURRENT_SOURCE_DIR}/${svcNameOut}.idl")
SET(source_idl_enums "${CMAKE_CURRENT_SOURCE_DIR}/${svcNameOut}_enums.idl")
IF(EXISTS ${source_idl} AND EXISTS ${source_idl_enums})
MESSAGE(STATUS "Found pre-generated IDL files for ${svcNameOut}")
# Copy pre-generated files to build directory
ADD_CUSTOM_COMMAND(OUTPUT ${out_files}
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${source_idl} ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}.idl
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${source_idl_enums} ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_enums.idl
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_json.cpp
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_json.h
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_translation.cpp
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_translation.h
DEPENDS ${source_idl} ${source_idl_enums}
COMMENT "Copying pre-generated IDL files for ${svcNameOut}"
)
SET_PROPERTY(GLOBAL APPEND PROPERTY CODEGEN_IDL_FILES "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}.idl" "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_enums.idl")
SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}.idl ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_enums.idl PROPERTIES HEADER_FILE_ONLY TRUE)
LIST(APPEND ${srcList} ${out_files})
ELSE()
MESSAGE(WARNING "BUILD_GRANTLEE disabled but no pre-generated IDL files found for ${svcNameOut}. Skipping service.")
# Create empty stub files to satisfy CMake
ADD_CUSTOM_COMMAND(OUTPUT ${out_files}
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}.idl
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_enums.idl
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_json.cpp
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_json.h
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_translation.cpp
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_translation.h
COMMENT "Creating stub files for ${svcNameOut} (no pre-generated IDL)"
)
SET_PROPERTY(GLOBAL APPEND PROPERTY CODEGEN_IDL_FILES "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}.idl" "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_enums.idl")
SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}.idl ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_enums.idl PROPERTIES HEADER_FILE_ONLY TRUE)
LIST(APPEND ${srcList} ${out_files})
ENDIF()
ENDIF()
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc.idl.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_enums.idl.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_json.cpp.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_json.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_translation.cpp.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_translation.h.grantlee"
)
SET(idl_out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}.idl"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_enums.idl")
SET_PROPERTY(GLOBAL APPEND PROPERTY CODEGEN_IDL_FILES "${idl_out_files}")
SET_SOURCE_FILES_PROPERTIES(${idl_out_files} PROPERTIES HEADER_FILE_ONLY TRUE)
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files ${ARGN})
CODEGEN_HANDLE_SVC_XML(${srcList} ${xmlFile_in})
ENDMACRO()
@@ -336,111 +288,78 @@ MACRO(CODEGEN_CLIENT_TOPICS_IFC srcList xmlFile_in)
SET(_CST_PARTS "DTC" "FTC")
ENDIF()
# When BUILD_GRANTLEE=OFF, use pre-generated files from source directory
IF(NOT BUILD_GRANTLEE)
FOREACH(part ${_CST_PARTS})
IF(part STREQUAL "DTC")
SET(generated_file "${CMAKE_CURRENT_SOURCE_DIR}/${svcNameOut}_dtc.h")
IF(EXISTS "${generated_file}")
LIST(APPEND ${srcList} "${generated_file}")
IF(NOT POLICY CMP0071)
QT6_WRAP_CPP(${srcList} "${generated_file}")
ENDIF()
ELSE()
MESSAGE(FATAL_ERROR "Pre-generated file ${generated_file} not found. BUILD_GRANTLEE=OFF requires pre-generated files.")
ENDIF()
ELSEIF(part STREQUAL "FTC")
SET(generated_file "${CMAKE_CURRENT_SOURCE_DIR}/${svcNameOut}_ftc.h")
IF(EXISTS "${generated_file}")
LIST(APPEND ${srcList} "${generated_file}")
IF(NOT POLICY CMP0071)
QT6_WRAP_CPP(${srcList} "${generated_file}")
ENDIF()
ELSE()
MESSAGE(FATAL_ERROR "Pre-generated file ${generated_file} not found. BUILD_GRANTLEE=OFF requires pre-generated files.")
ENDIF()
ELSE()
MESSAGE(FATAL_ERROR "Unkown part argument for CODEGEN_SERVER_TOPICS (${part})")
SET(in_files "")
SET(out_files "")
FOREACH(part ${_CST_PARTS})
IF(part STREQUAL "DTC")
LIST(APPEND in_files
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dtc.h.grantlee"
)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc.h"
)
IF(NOT POLICY CMP0071)
QT6_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc.h")
ENDIF()
ENDFOREACH()
ELSE()
# Original codegen logic with Grantlee
SET(in_files "")
SET(out_files "")
FOREACH(part ${_CST_PARTS})
IF(part STREQUAL "DTC")
LIST(APPEND in_files
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dtc.h.grantlee"
)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc.h"
)
IF(NOT POLICY CMP0071)
QT6_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc.h")
ENDIF()
ELSEIF(part STREQUAL "FTC")
LIST(APPEND in_files
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_ftc.h.grantlee"
)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc.h"
)
IF(NOT POLICY CMP0071)
QT6_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc.h")
ENDIF()
ELSE()
MESSAGE(FATAL_ERROR "Unkown part argument for CODEGEN_SERVER_TOPICS (${part})")
ELSEIF(part STREQUAL "FTC")
LIST(APPEND in_files
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_ftc.h.grantlee"
)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc.h"
)
IF(NOT POLICY CMP0071)
QT6_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc.h")
ENDIF()
ENDFOREACH()
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
ENDIF()
ELSE()
MESSAGE(FATAL_ERROR "Unkown part argument for CODEGEN_SERVER_TOPICS (${part})")
ENDIF()
ENDFOREACH()
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
ENDMACRO()
MACRO(CODEGEN_CLIENT_TOPICS_IMPL srcList xmlFile_in)
# Skip code generation when BUILD_GRANTLEE=OFF - use pre-generated files instead
IF(BUILD_GRANTLEE)
SET(options)
SET(oneValueArgs)
SET(multiValueArgs PARTS)
CMAKE_PARSE_ARGUMENTS(_CST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
SET(options)
SET(oneValueArgs)
SET(multiValueArgs PARTS)
CMAKE_PARSE_ARGUMENTS(_CST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
IF(NOT _CST_PARTS)
SET(_CST_PARTS "DTC" "FTC")
ENDIF()
SET(in_files "")
SET(out_files "")
FOREACH(part ${_CST_PARTS})
IF(part STREQUAL "DTC")
LIST(APPEND in_files
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dtc_impl.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dtc_impl.cpp.grantlee"
)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc_impl.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc_impl.cpp"
)
IF(NOT POLICY CMP0071)
QT6_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc_impl.h")
ENDIF()
ELSEIF(part STREQUAL "FTC")
LIST(APPEND in_files
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_ftc_impl.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_ftc_impl.cpp.grantlee"
)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc_impl.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc_impl.cpp"
)
IF(NOT POLICY CMP0071)
QT6_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc_impl.h")
ENDIF()
ELSE()
MESSAGE(FATAL_ERROR "Unkown part argument for CODEGEN_SERVER_TOPICS (${part})")
ENDIF()
ENDFOREACH()
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
IF(NOT _CST_PARTS)
SET(_CST_PARTS "DTC" "FTC")
ENDIF()
SET(in_files "")
SET(out_files "")
FOREACH(part ${_CST_PARTS})
IF(part STREQUAL "DTC")
LIST(APPEND in_files
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dtc_impl.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dtc_impl.cpp.grantlee"
)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc_impl.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc_impl.cpp"
)
IF(NOT POLICY CMP0071)
QT6_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc_impl.h")
ENDIF()
ELSEIF(part STREQUAL "FTC")
LIST(APPEND in_files
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_ftc_impl.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_ftc_impl.cpp.grantlee"
)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc_impl.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc_impl.cpp"
)
IF(NOT POLICY CMP0071)
QT6_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc_impl.h")
ENDIF()
ELSE()
MESSAGE(FATAL_ERROR "Unkown part argument for CODEGEN_SERVER_TOPICS (${part})")
ENDIF()
ENDFOREACH()
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
ENDMACRO()
MACRO(CODEGEN_SERVER_TOPICS srcList xmlFile_in)