Drops BUILD_GRANTLEE fallback paths from codegen macros
This commit is contained in:
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)
|
||||
|
||||
Reference in new issue
Block a user