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() ENDMACRO()
MACRO(CODEGEN_SQL srcList xmlFile_in) MACRO(CODEGEN_SQL srcList xmlFile_in)
IF(BUILD_GRANTLEE) _GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut ) SET(out_dir_sql "${CMAKE_BINARY_DIR}/share/Lts/sql/")
SET(out_dir_sql "${CMAKE_BINARY_DIR}/share/Lts/sql/") SET(out_file_sql "${out_dir_sql}/${svcNameOut}.sql")
SET(out_file_sql "${out_dir_sql}/${svcNameOut}.sql") SET(action "SQL")
SET(action "SQL") SET(_cg $<TARGET_FILE:ngl_codegen>)
SET(_cg $<TARGET_FILE:ngl_codegen>) ADD_CUSTOM_COMMAND(OUTPUT ${out_file_sql}
ADD_CUSTOM_COMMAND(OUTPUT ${out_file_sql} COMMAND ${CMAKE_COMMAND}
COMMAND ${CMAKE_COMMAND} ARGS -E make_directory ${out_dir_sql}
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}
COMMAND ${CMAKE_COMMAND} -E env QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt6/plugins/kf6/ktexttemplate ${_cg} ARGS -s ${xmlFile_in}
ARGS -s ${xmlFile_in} -a ${action}
-a ${action} -o ${out_dir_sql}
-o ${out_dir_sql} -i ${CMAKE_BINARY_DIR}/service_idl_files.txt
-i ${CMAKE_BINARY_DIR}/service_idl_files.txt DEPENDS ${_cg} ${xmlFile_in}
DEPENDS ${_cg} ${xmlFile_in} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
) LIST(APPEND ${srcList} ${out_file_sql})
LIST(APPEND ${srcList} ${out_file_sql})
NGL_INSTALL(SV AAR FILES ${out_file_sql} DESTINATION share/Lts/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()
ENDMACRO() ENDMACRO()
MACRO(CODEGEN_HANDLE_SVC_XML srcList xmlFile_in) 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.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_translation.h") "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_translation.h")
IF(BUILD_GRANTLEE) SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc.idl.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_enums.idl.grantlee" "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_json.cpp.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_json.h.grantlee" "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_translation.cpp.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_translation.cpp.grantlee" "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_translation.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_translation.h.grantlee" )
) SET(idl_out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}.idl"
SET(idl_out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}.idl" "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_enums.idl")
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_enums.idl") SET_PROPERTY(GLOBAL APPEND PROPERTY CODEGEN_IDL_FILES "${idl_out_files}")
SET_PROPERTY(GLOBAL APPEND PROPERTY CODEGEN_IDL_FILES "${idl_out_files}") SET_SOURCE_FILES_PROPERTIES(${idl_out_files} PROPERTIES HEADER_FILE_ONLY TRUE)
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_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()
CODEGEN_HANDLE_SVC_XML(${srcList} ${xmlFile_in}) CODEGEN_HANDLE_SVC_XML(${srcList} ${xmlFile_in})
ENDMACRO() ENDMACRO()
@@ -336,111 +288,78 @@ MACRO(CODEGEN_CLIENT_TOPICS_IFC srcList xmlFile_in)
SET(_CST_PARTS "DTC" "FTC") SET(_CST_PARTS "DTC" "FTC")
ENDIF() ENDIF()
# When BUILD_GRANTLEE=OFF, use pre-generated files from source directory SET(in_files "")
IF(NOT BUILD_GRANTLEE) SET(out_files "")
FOREACH(part ${_CST_PARTS}) FOREACH(part ${_CST_PARTS})
IF(part STREQUAL "DTC") IF(part STREQUAL "DTC")
SET(generated_file "${CMAKE_CURRENT_SOURCE_DIR}/${svcNameOut}_dtc.h") LIST(APPEND in_files
IF(EXISTS "${generated_file}") "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dtc.h.grantlee"
LIST(APPEND ${srcList} "${generated_file}") )
IF(NOT POLICY CMP0071) LIST(APPEND out_files
QT6_WRAP_CPP(${srcList} "${generated_file}") "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc.h"
ENDIF() )
ELSE() IF(NOT POLICY CMP0071)
MESSAGE(FATAL_ERROR "Pre-generated file ${generated_file} not found. BUILD_GRANTLEE=OFF requires pre-generated files.") QT6_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc.h")
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})")
ENDIF() ENDIF()
ENDFOREACH() ELSEIF(part STREQUAL "FTC")
ELSE() LIST(APPEND in_files
# Original codegen logic with Grantlee "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_ftc.h.grantlee"
SET(in_files "") )
SET(out_files "") LIST(APPEND out_files
FOREACH(part ${_CST_PARTS}) "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc.h"
IF(part STREQUAL "DTC") )
LIST(APPEND in_files IF(NOT POLICY CMP0071)
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dtc.h.grantlee" QT6_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc.h")
)
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})")
ENDIF() ENDIF()
ENDFOREACH() ELSE()
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files) MESSAGE(FATAL_ERROR "Unkown part argument for CODEGEN_SERVER_TOPICS (${part})")
ENDIF() ENDIF()
ENDFOREACH()
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
ENDMACRO() ENDMACRO()
MACRO(CODEGEN_CLIENT_TOPICS_IMPL srcList xmlFile_in) MACRO(CODEGEN_CLIENT_TOPICS_IMPL srcList xmlFile_in)
# Skip code generation when BUILD_GRANTLEE=OFF - use pre-generated files instead SET(options)
IF(BUILD_GRANTLEE) SET(oneValueArgs)
SET(options) SET(multiValueArgs PARTS)
SET(oneValueArgs) CMAKE_PARSE_ARGUMENTS(_CST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
SET(multiValueArgs PARTS)
CMAKE_PARSE_ARGUMENTS(_CST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut ) _GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
IF(NOT _CST_PARTS) IF(NOT _CST_PARTS)
SET(_CST_PARTS "DTC" "FTC") 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)
ENDIF() 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() ENDMACRO()
MACRO(CODEGEN_SERVER_TOPICS srcList xmlFile_in) MACRO(CODEGEN_SERVER_TOPICS srcList xmlFile_in)