Reworks CMake wiring for Qt6 codegen include order
Adds missing toolchain packages and include dirs so generated headers resolve.
This commit is contained in:
25 files changed
+388
-84
No files matched your search
@@ -75,6 +75,12 @@ ENDIF()
|
||||
|
||||
ADD_DEFINITIONS(-DAPP6C)
|
||||
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
# Resolve <DDS/...> and other framework includes to the real headers under
|
||||
# Lts/ BEFORE the migration stub tree in include/. The stub tree shadows them
|
||||
# otherwise and opens namespace DDSGeneric around framework includes, which
|
||||
# pulls Qt/std definitions into that namespace and breaks every consumer.
|
||||
# (The qt5 legacy has no include/ tree; Lts/ is the real include root.)
|
||||
include_directories(BEFORE ${CMAKE_SOURCE_DIR}/Lts)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/include)
|
||||
# Include directory for generated export headers
|
||||
include_directories(${CMAKE_BINARY_DIR})
|
||||
@@ -108,6 +114,11 @@ include_directories(${CMAKE_BINARY_DIR}/Lts/Services/ReportManagement)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/include/ReportManagement)
|
||||
include_directories(${CMAKE_BINARY_DIR}/Lts/Services/SituationReplay)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/include/SituationReplay)
|
||||
# Evaluations' generated evl_db_structs.h includes <evl_enums.hpp> by bare name, and that
|
||||
# header is consumed from OcBaseDownload as well, so its build dir must be visible tree-wide
|
||||
# like the services above. There is no include/Evaluations stub tree, so only the build dir
|
||||
# is added (same shape as FileManagement above, which has no stub tree either).
|
||||
include_directories(${CMAKE_BINARY_DIR}/Lts/Services/Evaluations)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/include/Buildings)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/Lts/Proxies/GuezNasat)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/Lts/DDS)
|
||||
@@ -117,12 +128,43 @@ include_directories(${CMAKE_SOURCE_DIR}/include/DDS/Generic)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/include/TrainingAreaBaseOC)
|
||||
# Generated DDS headers (BUILD_RTI=ON)
|
||||
include_directories(${CMAKE_BINARY_DIR}/Lts)
|
||||
# <Core/core.hpp> consumers (LtsCoordinate, AES/CES, HLA proxies) resolve the
|
||||
# rtiddsgen-generated core.hpp from the DDS build dir (the qt5 include order);
|
||||
# the OFF-era stub copies in include/Core/ have been removed.
|
||||
include_directories(${CMAKE_BINARY_DIR}/Lts/DDS)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/Lts/Common)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/Lts/Common/LtsUtils)
|
||||
include_directories(${CMAKE_BINARY_DIR}/Lts/Common/LtsUtils/LtsUtilsCore)
|
||||
# LtsUtilsSettings's generated ltsutilssettings_export.h is included by bare name from
|
||||
# settings.h. Consumer targets that reach settings.h transitively (without linking
|
||||
# LtsUtilsSettings themselves) cannot see it through the target's PUBLIC interface, so the
|
||||
# directory holding the generated header has to be visible tree-wide. The directory contains
|
||||
# only that generated header, so appending it cannot shadow an existing include.
|
||||
include_directories(${CMAKE_BINARY_DIR}/Lts/Common/LtsUtils/LtsUtilsSettings)
|
||||
# DDSConnector's generated ddsconnector_export.h is included by bare name from
|
||||
# dds_connector.h and pub_sub_base.h, and reaches targets (the AES ModuleTests) that include
|
||||
# DDSConnector headers without linking ddsconnector. Same shape as LtsUtilsSettings above: the
|
||||
# directory holds only the generated header.
|
||||
include_directories(${CMAKE_BINARY_DIR}/Lts/DDS/DDSConnector)
|
||||
# The generated msg_db_structs.h includes <msg_enums.hpp> by bare name, and Messaging is
|
||||
# reached transitively from OcBaseDownload and the proxy handlers, so its build dir must be
|
||||
# visible tree-wide like the services above. Unlike them there is no include/Messaging stub
|
||||
# tree, so only the build dir is added.
|
||||
include_directories(${CMAKE_BINARY_DIR}/Lts/Services/Messaging)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/Z/src/NGLLogger)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/include/Viewer/SituationMap)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/include/OperatorManagement)
|
||||
# The generated opm_db_structs.h includes <opm_enums.hpp> by bare name and is reached
|
||||
# transitively from OcBaseDownload, so the OperatorManagement build dir has to be visible
|
||||
# tree-wide next to its include/ stub tree above.
|
||||
include_directories(${CMAKE_BINARY_DIR}/Lts/Services/OperatorManagement)
|
||||
# The plugin interface headers live under Lts/Plugins/<Svc>/ and are included both as
|
||||
# <Plugins/<Svc>/x.h> (the qt5 spelling, resolved through the Lts/ root) and, since the
|
||||
# migration dropped the leading segment, as <Svc>/x.h>. Lts/Plugins is therefore needed on
|
||||
# the path. It is appended last so it can only ever resolve includes that were unresolvable
|
||||
# before: every include that resolves today is found in an earlier directory, so no existing
|
||||
# resolution can change.
|
||||
include_directories(${CMAKE_SOURCE_DIR}/Lts/Plugins)
|
||||
include_directories(${CMAKE_SOURCE_DIR}/forward-declarations)
|
||||
SET(CMAKE_CXX_STANDARD 17)
|
||||
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
@@ -311,6 +353,13 @@ if(NOT TARGET Qt6::Gui AND EXISTS "${QT6_LIB_DIR}/libQt6Gui.so.6")
|
||||
)
|
||||
endif()
|
||||
|
||||
# Set variable for legacy code that uses ${Qt6_Gui} — like Qt6_Widgets below,
|
||||
# subdirectory CMakeLists contain `set(Qt6_Gui ${Qt6_Gui})` optional-guard
|
||||
# no-ops that keep this root-scope value.
|
||||
if(TARGET Qt6::Gui)
|
||||
set(Qt6_Gui Qt6::Gui)
|
||||
endif()
|
||||
|
||||
# Qt6::Widgets - create manual target (find_package fails without OpenGL)
|
||||
if(EXISTS "${QT6_LIB_DIR}/libQt6Widgets.so.6")
|
||||
if(NOT TARGET Qt6::Widgets)
|
||||
@@ -475,6 +524,13 @@ if(NOT TARGET Qt6::WebSockets)
|
||||
message(STATUS "Created stub target for Qt6::WebSockets (library not available)")
|
||||
endif()
|
||||
|
||||
# Set variable for legacy code that uses ${Qt6_WebSockets} — subdirectory
|
||||
# CMakeLists contain `set(Qt6_WebSockets ${Qt6_WebSockets})` optional-guard
|
||||
# no-ops that keep this root-scope value.
|
||||
if(TARGET Qt6::WebSockets)
|
||||
set(Qt6_WebSockets Qt6::WebSockets)
|
||||
endif()
|
||||
|
||||
# The real Qt6 WebSockets module is available (either via find_package or the
|
||||
# manual import above): enable the real websocket code paths in httq,
|
||||
# LtsWebSocket and the migrated services (they check this macro; without it
|
||||
@@ -526,7 +582,20 @@ IF(BUILD_RTI)
|
||||
|
||||
# RTI Include-Pfade auch an MOC weitergeben (für Q_OBJECT Header mit RTI Types)
|
||||
SET(CMAKE_AUTOMOC_INCLUDE_DIRECTORIES ${CMAKE_AUTOMOC_INCLUDE_DIRECTORIES} ${RTI_INCLUDE_DIRS})
|
||||
|
||||
|
||||
# The generated <svc>_topic_type_plugin.h / <svc>_record_replay_plugin.h
|
||||
# headers use Q_INTERFACES(DDSGeneric::TopicTypePlugin), so moc must see
|
||||
# the Q_DECLARE_INTERFACE in Lts/DDS/... (resolved through the Lts include
|
||||
# root). Without this path every <svc>TopicTypePlugin fails with
|
||||
# "Undefined interface" even though the compiler sees the header.
|
||||
SET(CMAKE_AUTOMOC_INCLUDE_DIRECTORIES ${CMAKE_AUTOMOC_INCLUDE_DIRECTORIES} ${CMAKE_SOURCE_DIR}/Lts)
|
||||
|
||||
# The ElevationMapManager stub header (include/Viewer/SituationMap/ElevationMap/)
|
||||
# lives apart from its source (src/...), so moc needs its directory explicitly.
|
||||
# NOTE: this must be set at root scope - subdir-scope appends do not reach
|
||||
# the AutogenInfo MOC_INCLUDES.
|
||||
SET(CMAKE_AUTOMOC_INCLUDE_DIRECTORIES ${CMAKE_AUTOMOC_INCLUDE_DIRECTORIES} ${CMAKE_SOURCE_DIR}/include/Viewer/SituationMap/ElevationMap)
|
||||
|
||||
# IMPORTED Targets für RTI Libraries erstellen
|
||||
# Debug und Release Varianten korrekt konfigurieren
|
||||
FOREACH(lib nddsc nddscore nddscpp nddscpp2 nddsctesthelpers)
|
||||
|
||||
@@ -31,9 +31,6 @@ if(QT6_GUI_AVAILABLE)
|
||||
PRIVATE
|
||||
NGLLogger
|
||||
## LtsSessionDataDds
|
||||
## ExmDataPluginInterface # External dependency - missing
|
||||
## situationMapCommon # External dependency - missing
|
||||
## situationMapElevationMap # External dependency - missing
|
||||
PUBLIC
|
||||
LtsUtilsCoreHeaderOnly
|
||||
Qt6::Core
|
||||
@@ -42,7 +39,14 @@ if(QT6_GUI_AVAILABLE)
|
||||
endif()
|
||||
|
||||
if(BUILD_RTI)
|
||||
target_link_libraries(LtsElevation PRIVATE AsmDataPluginInterface)
|
||||
# All ElevationMapManager / resource_path / exm-dtc usages live inside
|
||||
# #ifdef BUILD_RTI in lts_elevation_manager.cpp (Qt5 dependencies restored).
|
||||
target_link_libraries(LtsElevation PRIVATE
|
||||
AsmDataPluginInterface
|
||||
ExmDataPluginInterface
|
||||
situationMapCommon
|
||||
situationMapElevationMap
|
||||
)
|
||||
endif()
|
||||
|
||||
ADD_SUBDIRECTORY(UnitTest_Elevation)
|
||||
@@ -22,6 +22,10 @@ NGL_ADD_LIBRARY2(AAR SV WS HLA ddsconnector SHARED ${SRCS})
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(ddsconnector
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../
|
||||
# dds_connector.h includes the generated ddsconnector_export.h with a
|
||||
# quoted include; consumers (svcFilterManagement etc.) resolve it only
|
||||
# if the binary dir with the GENERATE_EXPORT_HEADER output is exported.
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
NGL_TARGET_LINK_LIBRARIES(ddsconnector
|
||||
|
||||
@@ -31,6 +31,10 @@ NGL_ADD_LIBRARY2(WS AAR SV HLA ddsfts SHARED ${SRCS})
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(ddsfts
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../
|
||||
# generic_fts_internal.h includes the generated ddsfts_export.h with a
|
||||
# quoted include; consumers (the generated *_topic_type_plugin.cpp)
|
||||
# resolve it only if the binary dir with the export header is exported.
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/../../Proxies/TrainingAreaBase
|
||||
)
|
||||
NGL_TARGET_LINK_LIBRARIES(ddsfts
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
# Make ${Qt6_Gui} optional
|
||||
if(QT6_GUI_AVAILABLE AND TARGET Qt6::Gui)
|
||||
set(Qt6_Gui ${Qt6_Gui})
|
||||
set(Qt6_Gui Qt6::Gui)
|
||||
else()
|
||||
set(Qt6_Gui "")
|
||||
endif()
|
||||
@@ -42,12 +42,6 @@ CODEGEN_DATABASE(SRCS_common ${xml_FILE})
|
||||
|
||||
# Generate *.cpp/*.hpp from idl
|
||||
RTIDDSGEN(SRCS_common bld_enums.idl)
|
||||
# Stub file for compilation (fallback when no IDL exists)
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/Buildings/bld_enums.hpp.stub
|
||||
${CMAKE_BINARY_DIR}/Lts/Proxies/Buildings/bld_enums.hpp
|
||||
COPYONLY
|
||||
)
|
||||
RTIDDSGEN(SRCS_common bld.idl)
|
||||
|
||||
# Generate bld_dt[s,c]_types.h, bld_ft[s,c]_types.h
|
||||
@@ -85,6 +79,11 @@ SET(SRCS_client
|
||||
CODEGEN_CLIENT_TOPICS_IMPL(SRCS_client ${xml_FILE})
|
||||
|
||||
NGL_ADD_LIBRARY2(AAR SV WS svcBldClient SHARED ${SRCS_client})
|
||||
# NGL_ADD_LIBRARY2 (unlike NGL_ADD_LIBRARY) does not define the
|
||||
# MAKE_<SYMBOL>_LIB compile guard, but the generated bld_[d|f]tc_impl.h
|
||||
# headers that this target compiles carry such a guard — same situation as
|
||||
# ddscore, which defines MAKE_DDSCORE_LIB explicitly for the same reason.
|
||||
TARGET_COMPILE_DEFINITIONS(svcBldClient PRIVATE MAKE_SVCBLDCLIENT_LIB)
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(svcBldClient
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
@@ -113,6 +112,9 @@ SET(SRCS_server
|
||||
CODEGEN_SERVER_TOPICS(SRCS_server ${xml_FILE})
|
||||
|
||||
NGL_ADD_LIBRARY2(AAR SV svcBldServer SHARED ${SRCS_server})
|
||||
# Same guard rationale as svcBldClient above: the generated
|
||||
# bld_[d|f]ts_impl.h headers require MAKE_SVCBLDSERVER_LIB.
|
||||
TARGET_COMPILE_DEFINITIONS(svcBldServer PRIVATE MAKE_SVCBLDSERVER_LIB)
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(svcBldServer
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
|
||||
@@ -61,6 +61,11 @@ SET(SRCS_client
|
||||
CODEGEN_CLIENT_TOPICS_IMPL(SRCS_client ${xml_FILE})
|
||||
|
||||
NGL_ADD_LIBRARY2(SV WS svcCmoClient SHARED ${SRCS_client})
|
||||
# NGL_ADD_LIBRARY2 (unlike NGL_ADD_LIBRARY) does not define the
|
||||
# MAKE_<SYMBOL>_LIB compile guard, but the generated cmo_[d|f]tc_impl.h
|
||||
# headers that this target compiles carry such a guard — same situation as
|
||||
# ddscore, which defines MAKE_DDSCORE_LIB explicitly for the same reason.
|
||||
TARGET_COMPILE_DEFINITIONS(svcCmoClient PRIVATE MAKE_SVCCMOCLIENT_LIB)
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(svcCmoClient
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
@@ -90,6 +95,9 @@ SET(SRCS_server
|
||||
CODEGEN_SERVER_TOPICS(SRCS_server ${xml_FILE})
|
||||
|
||||
NGL_ADD_LIBRARY2(SV svcCmoServer SHARED ${SRCS_server})
|
||||
# Same guard rationale as svcCmoClient above: the generated
|
||||
# cmo_[d|f]ts_impl.h headers require MAKE_SVCCMOSERVER_LIB.
|
||||
TARGET_COMPILE_DEFINITIONS(svcCmoServer PRIVATE MAKE_SVCCMOSERVER_LIB)
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(svcCmoServer
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
|
||||
@@ -66,6 +66,11 @@ SET(SRCS_client
|
||||
CODEGEN_CLIENT_TOPICS_IMPL(SRCS_client ${xml_FILE})
|
||||
|
||||
NGL_ADD_LIBRARY2(AAR SV WS svcGnaClient SHARED ${SRCS_client})
|
||||
# NGL_ADD_LIBRARY2 (unlike NGL_ADD_LIBRARY) does not define the
|
||||
# MAKE_<SYMBOL>_LIB compile guard, but the generated gna_[d|f]tc_impl.h
|
||||
# headers that this target compiles carry such a guard — same situation as
|
||||
# ddscore, which defines MAKE_DDSCORE_LIB explicitly for the same reason.
|
||||
TARGET_COMPILE_DEFINITIONS(svcGnaClient PRIVATE MAKE_SVCGNACLIENT_LIB)
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(svcGnaClient
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
|
||||
@@ -152,6 +152,11 @@ IF(BUILD_RTI)
|
||||
ENDIF()
|
||||
|
||||
NGL_ADD_LIBRARY2(AAR SV WS HLA svcTabClient SHARED ${SRCS_client})
|
||||
# NGL_ADD_LIBRARY2 (unlike NGL_ADD_LIBRARY) does not define the
|
||||
# MAKE_<SYMBOL>_LIB compile guard, but the generated tab_[d|f]tc_impl.h
|
||||
# headers require MAKE_SVCTABCLIENT_LIB — same situation as
|
||||
# svcCoreClient/ddscore, which define their guards explicitly.
|
||||
TARGET_COMPILE_DEFINITIONS(svcTabClient PRIVATE MAKE_SVCTABCLIENT_LIB)
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(svcTabClient
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
@@ -184,6 +189,8 @@ IF(BUILD_RTI)
|
||||
ENDIF()
|
||||
|
||||
NGL_ADD_LIBRARY2(AAR HLA SV svcTabServer SHARED ${SRCS_server}) # NGL_ADD_LIBRARY2 won't work here - no time for investigations
|
||||
# Generated tab_[d|f]ts_impl.h require MAKE_SVCTABSERVER_LIB (see svcTabClient above).
|
||||
TARGET_COMPILE_DEFINITIONS(svcTabServer PRIVATE MAKE_SVCTABSERVER_LIB)
|
||||
if(BUILD_SV OR BUILD_HLA)
|
||||
GENERATE_EXPORT_HEADER(svcTabServer) # FIXME: quick workaround
|
||||
endif()
|
||||
|
||||
@@ -72,6 +72,11 @@ SET(SRCS_client
|
||||
CODEGEN_CLIENT_TOPICS_IMPL(SRCS_client ${xml_FILE})
|
||||
|
||||
NGL_ADD_LIBRARY2(AAR SV WS svcTabocClient SHARED ${SRCS_client})
|
||||
# NGL_ADD_LIBRARY2 (unlike NGL_ADD_LIBRARY) does not define the
|
||||
# MAKE_<SYMBOL>_LIB compile guard, but the generated taboc_[d|f]tc_impl.h
|
||||
# headers require MAKE_SVCTABOCCLIENT_LIB — same situation as
|
||||
# svcTabClient/svcCoreClient, which define their guards explicitly.
|
||||
TARGET_COMPILE_DEFINITIONS(svcTabocClient PRIVATE MAKE_SVCTABOCCLIENT_LIB)
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(svcTabocClient
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
@@ -102,6 +107,8 @@ CODEGEN_SERVER_TOPICS(SRCS_server ${xml_FILE})
|
||||
#CODEGEN_DATABASE(SRCS_server ${xml_FILE})
|
||||
|
||||
NGL_ADD_LIBRARY2(AAR SV svcTabocServer SHARED ${SRCS_server})
|
||||
# Generated taboc_[d|f]ts_impl.h require MAKE_SVCTABOCSERVER_LIB (see svcTabocClient above).
|
||||
TARGET_COMPILE_DEFINITIONS(svcTabocServer PRIVATE MAKE_SVCTABOCSERVER_LIB)
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(svcTabocServer
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
|
||||
# Make ${Qt6_Gui} optional
|
||||
if(QT6_GUI_AVAILABLE AND TARGET Qt6::Gui)
|
||||
set(Qt6_Gui ${Qt6_Gui})
|
||||
set(Qt6_Gui Qt6::Gui)
|
||||
else()
|
||||
set(Qt6_Gui "")
|
||||
endif()
|
||||
|
||||
# Make ${Qt6_Widgets} optional
|
||||
if(QT6_GUI_AVAILABLE AND TARGET Qt6::Widgets)
|
||||
set(Qt6_Widgets ${Qt6_Widgets})
|
||||
set(Qt6_Widgets Qt6::Widgets)
|
||||
else()
|
||||
set(Qt6_Widgets "")
|
||||
endif()
|
||||
@@ -70,12 +70,10 @@ LIST(APPEND SRCS_common ${in_file_sql} ${out_file_sql})
|
||||
# Generate aes_enums.idl / aes.idl / aes_enums.cpp/aes_enums.h
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_IDL_SVC(SRCS_common ${xml_FILE})
|
||||
# Stub enum header for tests when BUILD_RTI=ON but no IDL
|
||||
IF(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/aes_enums.idl")
|
||||
CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/include/AreaEffectSimulation/aes_enums.hpp.stub"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/aes_enums.hpp"
|
||||
COPYONLY)
|
||||
ENDIF()
|
||||
# The former stub copy for aes_enums.hpp ran unconditionally here: its
|
||||
# IF(NOT EXISTS) guard checked the source dir, but CODEGEN_IDL_SVC writes
|
||||
# aes_enums.idl into the build dir, so the stub always overwrote the
|
||||
# rtiddsgen-generated header on re-configure. Removed for the ON build.
|
||||
ENDIF()
|
||||
# Generate aes_db_structs.cpp/.h
|
||||
CODEGEN_DATABASE_STRUCTS(SRCS_common ${xml_FILE})
|
||||
|
||||
@@ -26,6 +26,10 @@ ENDIF()
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_DATABASE(SRCS_common ${xml_FILE})
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Copy asm_enums.hpp.stub to build directory for compilation
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/AssetManagement/asm_enums.hpp.stub
|
||||
@@ -34,6 +38,7 @@ CONFIGURE_FILE(
|
||||
)
|
||||
|
||||
|
||||
ENDIF()
|
||||
# Generate *.cpp/*.hpp from idl
|
||||
RTIDDSGEN(SRCS_common asm_enums.idl)
|
||||
RTIDDSGEN(SRCS_common asm.idl)
|
||||
|
||||
@@ -122,12 +122,17 @@ SET_SOURCE_FILES_PROPERTIES(list_response_collector.cpp PROPERTIES SKIP_UNITY_BU
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_IDL_SVC(SRCS_common ${xml_FILE})
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Stub file for compilation (fallback when no IDL exists)
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/AudioVideoManagement/avm_enums.hpp.stub
|
||||
${CMAKE_BINARY_DIR}/Lts/Services/AudioVideoManagement/avm_enums.hpp
|
||||
COPYONLY
|
||||
)
|
||||
ENDIF()
|
||||
# Generate avm_db.h, avm_db_impl.cpp/.h
|
||||
CODEGEN_DATABASE_SQL(SRCS_common ${xml_FILE})
|
||||
|
||||
@@ -136,6 +141,10 @@ IF(BUILD_RTI)
|
||||
RTIDDSGEN(SRCS_common avm_enums.idl)
|
||||
RTIDDSGEN(SRCS_common avm.idl)
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Copy avm_enums.hpp.stub to build directory for compilation
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/AudioVideoManagement/avm_enums.hpp.stub
|
||||
@@ -144,6 +153,7 @@ CONFIGURE_FILE(
|
||||
)
|
||||
|
||||
|
||||
ENDIF()
|
||||
# Generate avm_dt[s,c]_types.h, avm_ft[s,c]_types.h
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE})
|
||||
@@ -152,6 +162,10 @@ ENDIF()
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE})
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Copy avm_enums.hpp.stub to build directory for compilation
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/AudioVideoManagement/avm_enums.hpp.stub
|
||||
@@ -160,6 +174,7 @@ CONFIGURE_FILE(
|
||||
)
|
||||
|
||||
|
||||
ENDIF()
|
||||
# Generate avm_db_structs.cpp/.h
|
||||
CODEGEN_DATABASE_STRUCTS(SRCS_common ${xml_FILE})
|
||||
|
||||
|
||||
@@ -4,9 +4,15 @@
|
||||
# $Author$
|
||||
#
|
||||
|
||||
# Make ${Qt6_WebSockets} optional
|
||||
if(QT6_GUI_AVAILABLE AND TARGET Qt6::WebSockets)
|
||||
set(Qt6_WebSockets ${Qt6_WebSockets})
|
||||
# Link the real WebSockets module whenever the websocket code path is
|
||||
# compiled: QT6_WEBSOCKETS_AVAILABLE (root CMakeLists) and the manual
|
||||
# Qt6::WebSockets import are set when the real module was found. The old
|
||||
# QT6_GUI_AVAILABLE condition never holds in this environment (Qt6
|
||||
# discovery takes the minimal path) and the Qt6_WebSockets variable was
|
||||
# never defined, so the websocket code compiled without the module on the
|
||||
# link line and failed only at link time.
|
||||
if(QT6_WEBSOCKETS_REAL_FOUND OR Qt6WebSockets_FOUND)
|
||||
set(Qt6_WebSockets Qt6::WebSockets)
|
||||
else()
|
||||
set(Qt6_WebSockets "")
|
||||
endif()
|
||||
@@ -30,6 +36,10 @@ SET(SRCS_common
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_IDL_SVC(SRCS_common ${xml_FILE})
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Stub file for compilation (fallback when no IDL exists)
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/ExerciseEventManagement/eem_enums.hpp.stub
|
||||
@@ -37,6 +47,7 @@ CONFIGURE_FILE(
|
||||
COPYONLY
|
||||
)
|
||||
|
||||
ENDIF()
|
||||
# Generate eem_db_structs.cpp/.h
|
||||
CODEGEN_DATABASE_STRUCTS(SRCS_common ${xml_FILE})
|
||||
# Generate eem_db_impl.cpp/.h
|
||||
@@ -47,6 +58,10 @@ IF(BUILD_RTI)
|
||||
RTIDDSGEN(SRCS_common eem_enums.idl)
|
||||
RTIDDSGEN(SRCS_common eem.idl)
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Copy eem_enums.hpp.stub to build directory for compilation
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/ExerciseEventManagement/eem_enums.hpp.stub
|
||||
@@ -55,6 +70,7 @@ CONFIGURE_FILE(
|
||||
)
|
||||
|
||||
|
||||
ENDIF()
|
||||
# Generate eem_dt[s,c]_types.h, eem_ft[s,c]_types.h
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE})
|
||||
|
||||
@@ -18,6 +18,10 @@ SET(SRCS_common
|
||||
logger.h
|
||||
)
|
||||
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Copy stub file to build directory (fallback when IDL files don't exist)
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/ExerciseManagement/exm_enums.hpp.stub
|
||||
@@ -25,6 +29,7 @@ CONFIGURE_FILE(
|
||||
COPYONLY
|
||||
)
|
||||
|
||||
ENDIF()
|
||||
IF(BUILD_RTI)
|
||||
# Generate exm_enums.idl / exm.idl
|
||||
CODEGEN_IDL_SVC(SRCS_common ${xml_FILE})
|
||||
@@ -37,12 +42,6 @@ IF(BUILD_RTI)
|
||||
CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE})
|
||||
# generate exm_[d|f]tc.h
|
||||
CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE})
|
||||
ELSE()
|
||||
# BUILD_RTI=OFF: Use manual stub headers from include/
|
||||
LIST(APPEND SRCS_common
|
||||
${CMAKE_SOURCE_DIR}/include/ExerciseManagement/exm_db.h
|
||||
${CMAKE_SOURCE_DIR}/include/ExerciseManagement/exm_enums.hpp
|
||||
)
|
||||
ENDIF()
|
||||
|
||||
NGL_ADD_LIBRARY(AAR SV WS HLA svcExmCommon SHARED ${SRCS_common})
|
||||
|
||||
@@ -158,6 +158,11 @@ NGL_TARGET_LINK_LIBRARIES(svcFilterManagement
|
||||
LtsCommandLineParser
|
||||
svcCoreClient
|
||||
svcFltServer
|
||||
# main_handler.cpp includes <DDS/DDSConnector/dds_connector.h>; the
|
||||
# ddsconnector link in svcFltClient/svcFltServer is PRIVATE and does not
|
||||
# propagate its exported include dirs (with ddsconnector_export.h) to
|
||||
# this executable's own TUs.
|
||||
$<IF:$<TARGET_EXISTS:ddsconnector>,ddsconnector,>
|
||||
)
|
||||
|
||||
NGL_INSTALL_TARGET(svcFilterManagement)
|
||||
|
||||
+21
-17
@@ -7,7 +7,7 @@
|
||||
|
||||
# Make ${Qt6_Gui} optional
|
||||
if(QT6_GUI_AVAILABLE AND TARGET Qt6::Gui)
|
||||
set(Qt6_Gui ${Qt6_Gui})
|
||||
set(Qt6_Gui Qt6::Gui)
|
||||
else()
|
||||
set(Qt6_Gui "")
|
||||
endif()
|
||||
@@ -32,6 +32,10 @@ SET(SRCS_common
|
||||
# Generate ism_enums.idl / ism.idl
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_IDL_SVC(SRCS_common ${xml_FILE})
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Stub file for compilation (fallback when no IDL exists)
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/InfrastructureManagement/ism_enums.hpp.stub
|
||||
@@ -39,10 +43,15 @@ CONFIGURE_FILE(
|
||||
COPYONLY
|
||||
)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
# Generate ism_db_impl.cpp/.h, ism_db.h
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_DATABASE(SRCS_common ${xml_FILE})
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Copy ism_enums.hpp.stub to build directory for compilation
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/InfrastructureManagement/ism_enums.hpp.stub
|
||||
@@ -51,11 +60,16 @@ CONFIGURE_FILE(
|
||||
)
|
||||
|
||||
|
||||
ENDIF()
|
||||
# Generate *.cpp/*.hpp from idl
|
||||
IF(BUILD_RTI)
|
||||
RTIDDSGEN(SRCS_common ism_enums.idl)
|
||||
RTIDDSGEN(SRCS_common ism.idl)
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Copy ism_enums.hpp.stub to build directory for compilation
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/InfrastructureManagement/ism_enums.hpp.stub
|
||||
@@ -64,21 +78,17 @@ CONFIGURE_FILE(
|
||||
)
|
||||
|
||||
|
||||
ENDIF()
|
||||
# Generate ism_dt[s,c]_types.h, ism_ft[s,c]_types.h
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE})
|
||||
ENDIF()
|
||||
# Generate ism_[d|f]tc.h
|
||||
# The former BUILD_GRANTLEE=OFF fallback copied handwritten ism_dtc.h /
|
||||
# ism_ftc.h onto the CODEGEN_CLIENT_TOPICS_IFC output paths; those fake
|
||||
# generated files were removed (the qt5 legacy has no such source files).
|
||||
IF(BUILD_GRANTLEE)
|
||||
CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE})
|
||||
ELSEIF(BUILD_RTI)
|
||||
# Use pre-generated files when BUILD_GRANTLEE=OFF
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/ism_dtc.h ${CMAKE_CURRENT_BINARY_DIR}/ism_dtc.h COPYONLY)
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/ism_ftc.h ${CMAKE_CURRENT_BINARY_DIR}/ism_ftc.h COPYONLY)
|
||||
LIST(APPEND SRCS_common
|
||||
${CMAKE_CURRENT_BINARY_DIR}/ism_dtc.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/ism_ftc.h
|
||||
)
|
||||
ENDIF()
|
||||
|
||||
NGL_ADD_LIBRARY(AAR SV WS HLA svcIsmCommon SHARED ${SRCS_common})
|
||||
@@ -111,16 +121,10 @@ SET(SRCS_client
|
||||
parse_building_xml.h
|
||||
)
|
||||
# generate ism_[d|f]tc_impl.[cpp|h]
|
||||
# ism_dtc_impl_custom.cpp/.h are real service sources (as in the qt5 legacy);
|
||||
# the BUILD_GRANTLEE=OFF copy of them onto codegen output paths was removed.
|
||||
IF(BUILD_GRANTLEE)
|
||||
CODEGEN_CLIENT_TOPICS_IMPL(SRCS_client ${xml_FILE})
|
||||
ELSEIF(BUILD_RTI)
|
||||
# Use pre-generated files when BUILD_GRANTLEE=OFF
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/ism_dtc_impl_custom.cpp ${CMAKE_CURRENT_BINARY_DIR}/ism_dtc_impl_custom.cpp COPYONLY)
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/ism_dtc_impl_custom.h ${CMAKE_CURRENT_BINARY_DIR}/ism_dtc_impl_custom.h COPYONLY)
|
||||
LIST(APPEND SRCS_client
|
||||
${CMAKE_CURRENT_BINARY_DIR}/ism_dtc_impl_custom.cpp
|
||||
${CMAKE_CURRENT_BINARY_DIR}/ism_dtc_impl_custom.h
|
||||
)
|
||||
ENDIF()
|
||||
|
||||
NGL_ADD_LIBRARY(AAR SV WS HLA svcIsmClient SHARED ${SRCS_client})
|
||||
|
||||
@@ -22,6 +22,10 @@ SET(SRCS_common
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_IDL_SVC(SRCS_common ${xml_FILE})
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Stub file for compilation (fallback when no IDL exists)
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/NotificationManagement/nom_enums.hpp.stub
|
||||
@@ -29,10 +33,15 @@ CONFIGURE_FILE(
|
||||
COPYONLY
|
||||
)
|
||||
|
||||
ENDIF()
|
||||
# Generate nom_db_impl.cpp/.h, nom_db.h
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_DATABASE(SRCS_common ${xml_FILE})
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Copy nom_enums.hpp.stub to build directory for compilation
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/NotificationManagement/nom_enums.hpp.stub
|
||||
@@ -41,6 +50,7 @@ CONFIGURE_FILE(
|
||||
)
|
||||
|
||||
|
||||
ENDIF()
|
||||
# Generate *.cpp/*.hpp from idl
|
||||
RTIDDSGEN(SRCS_common nom_enums.idl)
|
||||
RTIDDSGEN(SRCS_common nom.idl)
|
||||
|
||||
@@ -18,6 +18,10 @@ SET(SRCS_common
|
||||
logger.h
|
||||
)
|
||||
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Copy stub file to build directory (fallback when IDL files don't exist)
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/OperatorManagement/opm_enums.hpp.stub
|
||||
@@ -25,6 +29,7 @@ CONFIGURE_FILE(
|
||||
COPYONLY
|
||||
)
|
||||
|
||||
ENDIF()
|
||||
IF(BUILD_RTI)
|
||||
# Generate opm_enums.idl / opm.idl
|
||||
CODEGEN_IDL_SVC(SRCS_common ${xml_FILE})
|
||||
@@ -37,12 +42,6 @@ IF(BUILD_RTI)
|
||||
CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE})
|
||||
# generate opm_[d|f]tc.h
|
||||
CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE})
|
||||
ELSE()
|
||||
# BUILD_RTI=OFF: Use manual stub headers from include/
|
||||
LIST(APPEND SRCS_common
|
||||
${CMAKE_SOURCE_DIR}/include/OperatorManagement/opm_db.h
|
||||
${CMAKE_SOURCE_DIR}/include/OperatorManagement/opm_enums.hpp
|
||||
)
|
||||
ENDIF()
|
||||
|
||||
NGL_ADD_LIBRARY(AAR SV WS svcOpmCommon SHARED ${SRCS_common})
|
||||
|
||||
@@ -11,9 +11,15 @@ else()
|
||||
set(Qt6_Gui "")
|
||||
endif()
|
||||
|
||||
# Make ${Qt6_WebSockets} optional
|
||||
if(QT6_GUI_AVAILABLE AND TARGET Qt6::WebSockets)
|
||||
set(Qt6_WebSockets ${Qt6_WebSockets})
|
||||
# Link the real WebSockets module whenever the websocket code path is
|
||||
# compiled: QT6_WEBSOCKETS_AVAILABLE (root CMakeLists) and the manual
|
||||
# Qt6::WebSockets import are set when the real module was found. The old
|
||||
# QT6_GUI_AVAILABLE condition never holds in this environment (Qt6
|
||||
# discovery takes the minimal path) and the Qt6_WebSockets variable was
|
||||
# never defined, so the websocket code compiled without the module on the
|
||||
# link line and failed only at link time.
|
||||
if(QT6_WEBSOCKETS_REAL_FOUND OR Qt6WebSockets_FOUND)
|
||||
set(Qt6_WebSockets Qt6::WebSockets)
|
||||
else()
|
||||
set(Qt6_WebSockets "")
|
||||
endif()
|
||||
@@ -44,6 +50,10 @@ IF(BUILD_RTI)
|
||||
RTIDDSGEN(SRCS_common ppm_enums.idl)
|
||||
RTIDDSGEN(SRCS_common ppm.idl)
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Stub file for compilation (fallback when no IDL exists)
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/ParticipantManagement/ppm_enums.hpp.stub
|
||||
@@ -51,6 +61,7 @@ CONFIGURE_FILE(
|
||||
COPYONLY
|
||||
)
|
||||
|
||||
ENDIF()
|
||||
# Generate ppm_db_structs.cpp/.h
|
||||
CODEGEN_DATABASE_STRUCTS(SRCS_common ${xml_FILE})
|
||||
# Generate ppm_db.cpp, ppm_db_impl.cpp/.h
|
||||
|
||||
@@ -20,35 +20,14 @@ SET(SRCS_common
|
||||
logger.h
|
||||
)
|
||||
|
||||
# Copy pdm_types.h to build directory
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../../include/ProjectDataManagement/pdm_types.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/pdm_types.h
|
||||
COPYONLY
|
||||
)
|
||||
# pdm_types.h was a migration-scaffolding stub with no qt5 counterpart and
|
||||
# no consumer; the stub in include/ was removed and the copy with it.
|
||||
|
||||
# Copy pdm_translation.h to build directory
|
||||
# Only when BUILD_GRANTLEE=OFF (stub header). With BUILD_GRANTLEE=ON the
|
||||
# codegen writes the real pdm_translation.h to the same build-dir path
|
||||
# (see "Generating ... pdm_translation.h" in CODEGEN_IDL_SVC); copying the
|
||||
# stub here would overwrite the generated file on every cmake re-configure
|
||||
# and break incremental builds. Same guard pattern as pdm_enums.hpp below.
|
||||
IF(NOT BUILD_GRANTLEE)
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../../include/ProjectDataManagement/pdm_translation.h
|
||||
${CMAKE_CURRENT_BINARY_DIR}/pdm_translation.h
|
||||
COPYONLY
|
||||
)
|
||||
ENDIF()
|
||||
|
||||
# Copy pdm_enums.hpp to build directory (when BUILD_RTI=OFF)
|
||||
IF(NOT BUILD_RTI)
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../../include/ProjectDataManagement/pdm_enums.hpp
|
||||
${CMAKE_CURRENT_BINARY_DIR}/pdm_enums.hpp
|
||||
COPYONLY
|
||||
)
|
||||
ENDIF()
|
||||
# pdm_translation.h and pdm_enums.hpp stub copies (OFF-variant fallbacks whose
|
||||
# include/ sources were removed together with the other shadowing stubs):
|
||||
# with BUILD_GRANTLEE=ON and BUILD_RTI=ON the codegen writes the real files to
|
||||
# these build-dir paths, so the copies are gone rather than kept for forbidden
|
||||
# OFF variants.
|
||||
|
||||
# Add current binary dir to include path for generated headers
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(${PDM_COMMON_TARGET}
|
||||
|
||||
@@ -20,6 +20,10 @@ SET(SRCS_common
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_IDL_SVC(SRCS_common ${xml_FILE})
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Stub file for compilation (fallback when no IDL exists)
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/ReportManagement/rep_enums.hpp.stub
|
||||
@@ -27,10 +31,15 @@ CONFIGURE_FILE(
|
||||
COPYONLY
|
||||
)
|
||||
|
||||
ENDIF()
|
||||
# Generate rep_db_impl.cpp/.h, rep_db.h
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_DATABASE(SRCS_common ${xml_FILE})
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Copy rep_enums.hpp.stub to build directory for compilation
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/ReportManagement/rep_enums.hpp.stub
|
||||
@@ -39,6 +48,7 @@ CONFIGURE_FILE(
|
||||
)
|
||||
|
||||
|
||||
ENDIF()
|
||||
# Generate *.cpp/*.hpp from idl
|
||||
RTIDDSGEN(SRCS_common rep_enums.idl)
|
||||
RTIDDSGEN(SRCS_common rep.idl)
|
||||
|
||||
@@ -22,6 +22,10 @@ SET(SRCS_common
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_IDL_SVC(SRCS_common ${xml_FILE})
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Stub file for compilation (fallback when no IDL exists)
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/SituationReplay/srp_enums.hpp.stub
|
||||
@@ -29,10 +33,15 @@ CONFIGURE_FILE(
|
||||
COPYONLY
|
||||
)
|
||||
|
||||
ENDIF()
|
||||
# Generate srp_db_impl.cpp/.h, srp_db.h
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_DATABASE(SRCS_common ${xml_FILE})
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Copy srp_enums.hpp.stub to build directory for compilation
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/SituationReplay/srp_enums.hpp.stub
|
||||
@@ -41,11 +50,16 @@ CONFIGURE_FILE(
|
||||
)
|
||||
|
||||
|
||||
ENDIF()
|
||||
# Generate *.cpp/*.hpp from idl
|
||||
IF(BUILD_RTI)
|
||||
RTIDDSGEN(SRCS_common srp_enums.idl)
|
||||
RTIDDSGEN(SRCS_common srp.idl)
|
||||
ENDIF()
|
||||
# The enums stub copy below would overwrite the rtiddsgen-generated
|
||||
# <svc>_enums.hpp (RTIDDSGEN on <svc>_enums.idl writes the same build-dir
|
||||
# path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF.
|
||||
IF(NOT BUILD_RTI)
|
||||
# Copy srp_enums.hpp.stub to build directory for compilation
|
||||
CONFIGURE_FILE(
|
||||
${CMAKE_SOURCE_DIR}/include/SituationReplay/srp_enums.hpp.stub
|
||||
@@ -54,6 +68,7 @@ CONFIGURE_FILE(
|
||||
)
|
||||
|
||||
|
||||
ENDIF()
|
||||
# Generate srp_dt[s,c]_types.h, srp_ft[s,c]_types.h
|
||||
IF(BUILD_RTI)
|
||||
CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE})
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
#
|
||||
# $Id$
|
||||
# $HeadURL$
|
||||
# $Author$
|
||||
#
|
||||
|
||||
# The GDAL-based ElevationMap module is not yet migrated to Qt6 (see the
|
||||
# commented-out entries in ../CMakeLists.txt). LtsElevation still needs an
|
||||
# ElevationMapManager, so build the compatibility stub that lives in the
|
||||
# src/ + include/ scaffolding (same API as the Qt5 class, no GDAL).
|
||||
NGL_ADD_LIBRARY(WS AAR HLA SV situationMapElevationMap SHARED
|
||||
${CMAKE_SOURCE_DIR}/src/Viewer/SituationMap/ElevationMap/elevation_map_manager.cpp
|
||||
# The header lives in include/Viewer/SituationMap/ElevationMap, apart from
|
||||
# the cpp. AUTOMOC only mocs headers that are target sources (or sit next
|
||||
# to one); MOC_INCLUDES merely feeds moc's own -I flags, not header
|
||||
# discovery. Listed explicitly, otherwise the vtable/staticMetaObject are
|
||||
# undefined and the link of libsituationMapElevationMap.so fails.
|
||||
${CMAKE_SOURCE_DIR}/include/Viewer/SituationMap/ElevationMap/elevation_map_manager.h
|
||||
)
|
||||
|
||||
# The stub's ElevationMapManager is a Q_OBJECT class; without AUTOMOC the
|
||||
# moc symbols (staticMetaObject/vtable) are missing and the link of
|
||||
# libsituationMapElevationMap.so fails, cascading to every target that
|
||||
# links it (same pattern as LtsSessionDataDds).
|
||||
set_target_properties(situationMapElevationMap PROPERTIES AUTOMOC ON)
|
||||
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(situationMapElevationMap
|
||||
PUBLIC
|
||||
# The stub cpp does #include "elevation_map_manager.h" - it lives in
|
||||
# include/Viewer/SituationMap/ElevationMap/, not next to the source.
|
||||
${CMAKE_SOURCE_DIR}/include/Viewer/SituationMap/ElevationMap
|
||||
${CMAKE_SOURCE_DIR}/include
|
||||
)
|
||||
NGL_TARGET_LINK_LIBRARIES(situationMapElevationMap
|
||||
PUBLIC
|
||||
Qt6::Core
|
||||
)
|
||||
@@ -446,6 +446,11 @@ MACRO(CREATE_TOPIC_TYPE_PLUGIN xmlFile_in)
|
||||
topic_type_plugin
|
||||
routing_plugin
|
||||
ddscore
|
||||
ddsftccore
|
||||
# The generated *_topic_type_plugin.cpp includes generic_fts_impl.h
|
||||
# -> generic_fts_internal.h -> "ddsfts_export.h". Linking ddsfts also
|
||||
# propagates its exported include dirs (source and binary dir).
|
||||
ddsfts
|
||||
${_commonLib}
|
||||
)
|
||||
NGL_INSTALL_TARGET(${svcNameOut}TopicTypePlugin)
|
||||
|
||||
@@ -44,18 +44,21 @@ docker run --rm \
|
||||
apt-get install -y -qq \
|
||||
build-essential \
|
||||
cmake \
|
||||
libboost-dev \
|
||||
libkf6texttemplate-dev \
|
||||
libqt6core6 \
|
||||
libqt6gui6 \
|
||||
libqt6widgets6 \
|
||||
qt6-base-dev \
|
||||
qt6-websockets-dev \
|
||||
qt6-serialport-dev \
|
||||
qt6-tools-dev-tools \
|
||||
qt6-tools-dev \
|
||||
qt6-l10n-tools \
|
||||
libgtest-dev \
|
||||
libpq-dev \
|
||||
postgresql-server-dev-all \
|
||||
libqt6sql6-psql \
|
||||
libvlc-dev \
|
||||
vlc-plugin-base \
|
||||
git > /dev/null 2>&1
|
||||
@@ -80,7 +83,90 @@ docker run --rm \
|
||||
-DCMAKE_CXX_STANDARD=17 \
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
|
||||
make -j8 ddscore ddsftccore ddsQoS ddsconnector ddsfts migration_tests NGLLogger nglapplication nglcompression nglcoreapplication ngldb nglguiapplication nglsettings nglsingleapplication nglsinglecoreapplication ngltools ngltranslator nglwidgets qtsingleapplication qtsinglecoreapplication wms_json_ds tcpserver svcFileManagement svcFilterManagement flmTests 2>&1 | tee build.log
|
||||
# Validation builds the full service set, not only the two services that
|
||||
# happened to be migrated first: every service library, the per-service
|
||||
# test executables, and the shared libraries they need. Targets that are
|
||||
# known blocked for reasons outside this migration are excluded below, so
|
||||
# a green run means every migratable service actually compiles.
|
||||
#
|
||||
# Excluded, each for a dependency this migration cannot supply:
|
||||
# svcTargetManagement - needs SituationMap::ElevationMap /
|
||||
# LineOfSightCalculation, the GDAL module
|
||||
# whose CMakeLists states it was never
|
||||
# migrated (main_handler.h:18 includes
|
||||
# <ElevationMap/elevation_map.h>).
|
||||
# svcExerciseManagement - needs QStateMachine / QState, moved from
|
||||
# svcInfrastructureManagement QtCore to the Qt SCXML module in Qt6
|
||||
# exmStateMachineTest (Qt6::StateMachine). No qt6-scxml-dev in
|
||||
# the image and qstatemachine.h is absent.
|
||||
make -j8 \
|
||||
ddscore ddsftccore ddsQoS ddsconnector ddsfts migration_tests \
|
||||
NGLLogger nglapplication nglcompression nglcoreapplication ngldb \
|
||||
nglguiapplication nglsettings nglsingleapplication nglsinglecoreapplication \
|
||||
ngltools ngltranslator nglwidgets qtsingleapplication qtsinglecoreapplication \
|
||||
wms_json_ds tcpserver \
|
||||
svcAesClient svcAesCommon svcAesServer \
|
||||
svcAlmClient svcAlmCommon svcAlmServer \
|
||||
svcAreaEffectSimulation \
|
||||
svcAsmClient svcAsmCommon svcAsmServer svcAssetManagement \
|
||||
svcAudioVideoManagement \
|
||||
svcAvmClient svcAvmCommon svcAvmServer \
|
||||
svcBldClient svcBldCommon svcBldServer svcBuildings \
|
||||
svcCentralEffectSimulation \
|
||||
svcCesClient svcCesCommon svcCesDDSCommon svcCesGeoPairingImpl svcCesServer \
|
||||
svcCmoClient svcCmoCommon svcCmoServer \
|
||||
svcCnrHelper svcCodClient svcCodCommon svcCodServer \
|
||||
svcCombatNetRadio svcComponentMonitor svcCoreClient svcDifferentialGPS \
|
||||
svcEemClient svcEemCommon svcEemServer \
|
||||
svcEffectShowClient \
|
||||
svcEscClient svcEscCommon svcEscServer \
|
||||
svcEsmClient svcEsmCommon svcEsmServer \
|
||||
svcEvlClient svcEvlCommon svcEvlServer \
|
||||
svcExerciseEventManagement \
|
||||
svcExmClient svcExmCommon svcExmServer \
|
||||
svcFileManagement svcFilterManagement \
|
||||
svcFlmClient svcFlmCommon svcFlmServer \
|
||||
svcFltClient svcFltCommon svcFltServer \
|
||||
svcGimClient svcGimCommon svcGimServer svcGmpServer \
|
||||
svcGnaClient svcGnaCommon svcGnaServer \
|
||||
svcGuezIedManagement \
|
||||
svcIsmClient svcIsmCommon svcIsmServer \
|
||||
svcMapDummy \
|
||||
svcMdmClient svcMdmCommon svcMdmServer \
|
||||
svcMessaging svcMeteoDataManagement \
|
||||
svcMrkClient svcMrkCommon svcMrkServer \
|
||||
svcMsgClient svcMsgCommon svcMsgServer \
|
||||
svcNomClient svcNomCommon svcNomServer svcNotificationManagement \
|
||||
svcObdClient svcObdCommon svcObdServer \
|
||||
svcOcBaseDownload svcOcSituationClient svcOcSituationServer \
|
||||
svcOperatorManagement \
|
||||
svcOpmClient svcOpmCommon svcOpmServer \
|
||||
svcOreDummy \
|
||||
svcOscClient svcOscCommon svcOscServer \
|
||||
svcOssClient svcOssCommon svcOssServer \
|
||||
svcParticipantManagement \
|
||||
svcPdmClient svcPdmCommon svcPdmServer svcPedDummy \
|
||||
svcPpmClient svcPpmCommon svcPpmServer \
|
||||
svcPreClient svcPreCommon svcPreServer svcProjectDataManagement svcPwsCommon \
|
||||
svcRecCommon svcRecordingManagement \
|
||||
svcRepClient svcRepCommon svcRepCommonExecutable svcRepServer \
|
||||
svcReportAnalyzer svcReportGenerator \
|
||||
svcScmClient svcScmCommon svcScmServer svcScrDummy \
|
||||
svcServiceManagement svcSituationReplay svcSmoDummy \
|
||||
svcSomClient svcSomCommon svcSomServer svcSoundManagement svcSrmCommon \
|
||||
svcSrpClient svcSrpCommon svcSrpServer \
|
||||
svcTabClient svcTabCommon svcTabServer \
|
||||
svcTabocClient svcTabocCommon svcTabocServer \
|
||||
svcTgtClient svcTgtCommon svcTgtServer \
|
||||
svcTrainingAreaBase svcTrainingAreaBaseOC \
|
||||
svcVideoOverlayManagement \
|
||||
svcWarehouseGuez svcWarehouseManagement \
|
||||
svcWhgClient svcWhgCommon svcWhgServer \
|
||||
asmTests avmFtTests avmTests avmVcaTests cesTests eemTests evlTests \
|
||||
exmDtUnitTest exmTests flmTests gmpTests ismTests \
|
||||
mrkTests mvsTests nomTests opmTests pdmTests ppmTests preTests repTests \
|
||||
scmDtUnitTest srpFtTests tgtTests whgTests \
|
||||
2>&1 | tee build.log
|
||||
|
||||
# Run the CTest unit tests as an explicit validation step.
|
||||
# We are already inside build4 (cd build4 above), so --test-dir is the
|
||||
|
||||
Reference in new issue
Block a user