Migration of Legatus codebase to Qt6 with RTI Connext DDS 7.7 integration is partially complete. Core DDS targets build successfully, but ProjectDataManagement module blocks full ddsfts compilation due to IDL definition conflicts.

This commit is contained in:
torsten committed 2026-09-07 19:30:39 +02:00
1 parent 758ae0f53f
commit ba1d9e2c04
256 files changed
+1170 -610

No files matched your search

@@ -217,23 +217,67 @@ ENDMACRO()
MACRO(CODEGEN_IDL_SVC srcList xmlFile_in)
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
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(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}.idl"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_enums.idl")
SET_PROPERTY(GLOBAL APPEND PROPERTY CODEGEN_IDL_FILES "${out_files}")
SET_SOURCE_FILES_PROPERTIES(${out_files} PROPERTIES HEADER_FILE_ONLY TRUE)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_enums.idl"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_json.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_json.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_translation.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_translation.h")
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files ${ARGN})
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()
CODEGEN_HANDLE_SVC_XML(${srcList} ${xmlFile_in})
ENDMACRO()
@@ -291,75 +335,112 @@ MACRO(CODEGEN_CLIENT_TOPICS_IFC srcList xmlFile_in)
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.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")
# 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})")
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"
)
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)
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})")
ENDIF()
ENDFOREACH()
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
ENDIF()
ENDMACRO()
MACRO(CODEGEN_CLIENT_TOPICS_IMPL srcList xmlFile_in)
SET(options)
SET(oneValueArgs)
SET(multiValueArgs PARTS)
CMAKE_PARSE_ARGUMENTS(_CST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
# 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})
_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})")
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
IF(NOT _CST_PARTS)
SET(_CST_PARTS "DTC" "FTC")
ENDIF()
ENDFOREACH()
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
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()
ENDMACRO()
MACRO(CODEGEN_SERVER_TOPICS srcList xmlFile_in)