Remove dead CMake configuration from the release validation scope
- Top-level CMakeLists.txt: drop RTI/Connext DDS config and placeholder targets, MIGRATE_MODULE guarded-subdir machinery (now unconditional add_subdirectory), BUILD_QAV, BUILD_PLUGINS_*, KDReports stub, ArcGIS option and FindRTI placeholder loop - Lts/CMakeLists.txt: release scope now unconditional (Common + Proxies/TrainingAreaBase), codegen/DDS/test/docs blocks removed - Lts/Common: drop DDS/RTI-gated plugin and utils test blocks - Lts/Proxies/TrainingAreaBase: remove RTI codegen, svcTabClient/svcTabServer, RTI plugins, sTAB; keep stub-only svcTabCommon + tabTelegrams + tabPluginInterface - TetraIF/PrtCnv: remove out-of-scope TetraTestServer/LastTest subdirs - Z/src/nglcompression: remove nglcomp_test (pre-existing Qt6 failure, no longer registered) - Delete 16 unused cmake/ helper modules and the tests/ scaffolding dir - new_docker_build.sh: drop BUILD_ARCGIS and nglcomp_test from the release build - README: update ctest baseline to 7/7 and remove license/exception mentions
This commit is contained in:
1 parent
6e7b09cf6f
commit
8976b5aedb
111 files changed
+62
-3761
No files matched your search
@@ -1,125 +0,0 @@
|
||||
IF(ARCGIS_INCLUDE_DIR AND ARCGIS_LIBRARY)
|
||||
SET(ARCGIS_FOUND TRUE)
|
||||
ELSE()
|
||||
|
||||
INCLUDE(FindLibraryWithDebug)
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
|
||||
SET(QT_MIN_VERSION 6.0.0)
|
||||
FIND_PACKAGE(Qt6 COMPONENTS Core Gui Location Network Sensors)
|
||||
IF (NOT Qt6_FOUND)
|
||||
MESSAGE(WARNING "Qt6 not found; skipping ArcGIS")
|
||||
SET(BUILD_ARCGIS OFF CACHE BOOL "Build ArcGIS SDK dependent modules" FORCE)
|
||||
RETURN()
|
||||
ENDIF()
|
||||
|
||||
SET(_arcgis_include_hint "${CMAKE_SOURCE_DIR}/external/ArcGIS/MapsSDK_Qt_300.0.0/ArcGIS_Maps_SDK_Qt_300.0.0/qt300.0.0/sdk/include")
|
||||
SET(_arcgis_library_hint "${CMAKE_SOURCE_DIR}/external/ArcGIS/MapsSDK_Qt_300.0.0/ArcGIS_Maps_SDK_Qt_300.0.0/qt300.0.0/sdk/linux/x64/lib")
|
||||
|
||||
# Check if paths exist, if not try alternative paths
|
||||
IF(NOT EXISTS "${_arcgis_include_hint}")
|
||||
SET(_arcgis_include_hint "${CMAKE_SOURCE_DIR}/../../external/ArcGIS/MapsSDK_Qt_300.0.0/ArcGIS_Maps_SDK_Qt_300.0.0/qt300.0.0/sdk/include")
|
||||
SET(_arcgis_library_hint "${CMAKE_SOURCE_DIR}/../../external/ArcGIS/MapsSDK_Qt_300.0.0/ArcGIS_Maps_SDK_Qt_300.0.0/qt300.0.0/sdk/linux/x64/lib")
|
||||
ENDIF()
|
||||
|
||||
SET(_arcgis_lib_dir $ENV{ARCGIS_LIB_DIR})
|
||||
SET(_arcgis_inc_dir $ENV{ARCGIS_INC_DIR})
|
||||
IF (NOT ${_arcgis_lib_dir} STREQUAL "")
|
||||
SET(_arcgis_library_hint "${_arcgis_lib_dir}")
|
||||
ENDIF()
|
||||
IF (NOT ${_arcgis_inc_dir} STREQUAL "")
|
||||
SET(_arcgis_include_hint "${_arcgis_inc_dir}")
|
||||
ENDIF()
|
||||
IF(WIN32)
|
||||
GET_FILENAME_COMPONENT(_arcgis_root_path "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\ESRI\\ArcGISRuntimeQt100.0.0;InstallDir]" ABSOLUTE)
|
||||
IF(_arcgis_root_path)
|
||||
SET(_arcgis_include_hint "${_arcgis_root_path}/sdk/windows/include/")
|
||||
SET(_arcgis_library_hint "${_arcgis_root_path}/sdk/windows/x86/lib/")
|
||||
ELSE()
|
||||
SET(_root "$ENV{KDEROOT}")
|
||||
FILE(TO_CMAKE_PATH "${_root}" _root)
|
||||
IF(NOT EXISTS "${_root}" OR NOT IS_DIRECTORY "${_root}")
|
||||
SET(_root $ENV{WORKSPACE})
|
||||
FILE(TO_CMAKE_PATH "${_root}" _root)
|
||||
ENDIF()
|
||||
IF(NOT EXISTS "${_root}" OR NOT IS_DIRECTORY "${_root}")
|
||||
SET(_root ${EXTERNAL_LIBRARY_DIR})
|
||||
FILE(TO_CMAKE_PATH "${_root}" _root)
|
||||
ENDIF()
|
||||
SET(_arcgis_include_hint "${_root}/include/")
|
||||
SET(_arcgis_library_hint "${_root}/lib/")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
FIND_PATH(ARCGIS_INCLUDE_DIR ArcGISQt_global.h HINTS ${_arcgis_include_hint})
|
||||
FIND_LIBRARY(ARCGIS_LIBRARY NAMES EsriRuntimeQt HINTS ${_arcgis_library_hint})
|
||||
|
||||
FIND_LIBRARY(ARCGIS_COMMON_LIBRARY NAMES EsriCommonQt HINTS ${_arcgis_library_hint})
|
||||
IF (UNIX)
|
||||
|
||||
FIND_LIBRARY(ARCGIS_CPP_LIBRARY NAMES runtimecore HINTS ${_arcgis_library_hint})
|
||||
ENDIF()
|
||||
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(ArcGIS DEFAULT_MSG ARCGIS_LIBRARY ARCGIS_INCLUDE_DIR)
|
||||
|
||||
MARK_AS_ADVANCED(ARCGIS_INCLUDE_DIR ARCGIS_LIBRARY)
|
||||
|
||||
IF(NOT ARCGIS_FOUND)
|
||||
SET(BUILD_ARCGIS OFF CACHE BOOL "Build ArcGIS SDK dependent modules" FORCE)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF(NOT TARGET ArcGIS::ArcGIS)
|
||||
ADD_LIBRARY(ArcGIS::ArcGIS UNKNOWN IMPORTED)
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${ARCGIS_INCLUDE_DIR}")
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${ARCGIS_INCLUDE_DIR}")
|
||||
|
||||
IF(ARCGIS_LIBRARY_RELEASE)
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY IMPORTED_LOCATION_RELEASE "${ARCGIS_LIBRARY_RELEASE}")
|
||||
ENDIF()
|
||||
IF(ARCGIS_LIBRARY_DEBUG)
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY IMPORTED_LOCATION_DEBUG "${ARCGIS_LIBRARY_DEBUG}")
|
||||
ENDIF()
|
||||
IF(NOT ARCGIS_LIBRARY_RELEASE AND NOT ARCGIS_LIBRARY_DEBUG)
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY IMPORTED_LOCATION "${ARCGIS_LIBRARY}")
|
||||
ENDIF()
|
||||
|
||||
# APPEND (not replace): line 95 above set the ArcGIS SDK include dir; a plain
|
||||
# SET_PROPERTY here overwrote it, so consumers (e.g. advancedSymbology) never
|
||||
# saw <Symbol.h> etc. Base-state defect carried over from the legacy Qt5 file
|
||||
# (identical overwrite of the Qt5 include dirs), never surfaced because the
|
||||
# ArcGIS-ON GROUP5 path was never validated in this pipeline.
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
||||
$<TARGET_PROPERTY:Qt6::Core,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:Qt6::Location,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:Qt6::Network,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
$<TARGET_PROPERTY:Qt6::Sensors,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
)
|
||||
|
||||
IF (UNIX)
|
||||
IF(ARCGIS_COMMON_LIBRARY_RELEASE)
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Release>:"${ARCGIS_COMMON_LIBRARY_RELEASE}">)
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Release>:"${ARCGIS_CPP_LIBRARY_RELEASE}">)
|
||||
ENDIF()
|
||||
IF(ARCGIS_COMMON_LIBRARY_DEBUG)
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Debug>:"${ARCGIS_COMMON_LIBRARY_DEBUG}">)
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Debug>:"${ARCGIS_CPP_LIBRARY_DEBUG}">)
|
||||
ENDIF()
|
||||
IF(ARCGIS_COMMON_LIBRARY AND NOT ARCGIS_COMMON_LIBRARY_RELEASE AND NOT ARCGIS_COMMON_LIBRARY_DEBUG)
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${ARCGIS_COMMON_LIBRARY}" "${ARCGIS_CPP_LIBRARY}")
|
||||
ENDIF()
|
||||
ELSE()
|
||||
IF(ARCGIS_COMMON_LIBRARY_RELEASE)
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Release>:${ARCGIS_COMMON_LIBRARY_RELEASE}>)
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:RelWithDebInfo>:${ARCGIS_COMMON_LIBRARY_RELEASE}>)
|
||||
ENDIF()
|
||||
IF(ARCGIS_COMMON_LIBRARY_DEBUG)
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Debug>:${ARCGIS_COMMON_LIBRARY_DEBUG}>)
|
||||
ENDIF()
|
||||
IF(ARCGIS_COMMON_LIBRARY AND NOT ARCGIS_COMMON_LIBRARY_RELEASE AND NOT ARCGIS_COMMON_LIBRARY_DEBUG)
|
||||
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${ARCGIS_COMMON_LIBRARY}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
@@ -1,26 +0,0 @@
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
INCLUDE(FindLibraryWithDebug)
|
||||
|
||||
# Allow user to supply BGVIEWER_DIR or check ./external/BgViewer by default
|
||||
if(NOT DEFINED BGVIEWER_DIR)
|
||||
if(DEFINED ENV{EXTERNAL_DIR})
|
||||
set(_external_hint "$ENV{EXTERNAL_DIR}")
|
||||
else()
|
||||
set(_external_hint "${CMAKE_SOURCE_DIR}/external")
|
||||
endif()
|
||||
set(BGVIEWER_DIR "${_external_hint}/BgViewer" CACHE PATH "BgViewer root directory (optional)")
|
||||
endif()
|
||||
|
||||
# Search in common system locations and in BGVIEWER_DIR
|
||||
set(_hints "${BGVIEWER_DIR}/lib" "${BGVIEWER_DIR}/lib/*" "${BGVIEWER_DIR}/lib/*/*")
|
||||
|
||||
FIND_LIBRARY_WITH_DEBUG(BGVIEWER_DTENTITY_LIBRARY WIN32_DEBUG_POSTFIX d dtEntity HINTS ${_hints})
|
||||
FIND_LIBRARY_WITH_DEBUG(BGVIEWER_DTENTITYOSG_LIBRARY WIN32_DEBUG_POSTFIX d dtEntityOSG HINTS ${_hints})
|
||||
FIND_PATH(BGVIEWER_INCLUDE_DIR dtEntity/export.h HINTS "${BGVIEWER_DIR}/include" "${BGVIEWER_DIR}/include/dtEntity" ${_hints} )
|
||||
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(BgViewer DEFAULT_MSG
|
||||
BGVIEWER_DTENTITY_LIBRARY
|
||||
BGVIEWER_DTENTITYOSG_LIBRARY
|
||||
BGVIEWER_INCLUDE_DIR)
|
||||
SET(BGVIEWER_LIBRARIES ${BGVIEWER_DTENTITYOSG_LIBRARY}
|
||||
${BGVIEWER_DTENTITY_LIBRARY})
|
||||
@@ -1,48 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
include(FindPkgConfig)
|
||||
|
||||
if(NOT BOTAN_FOUND)
|
||||
pkg_check_modules(Botan botan-2)
|
||||
endif()
|
||||
|
||||
if(NOT BOTAN_FOUND)
|
||||
find_path(BOTAN_INCLUDE_DIRS NAMES botan/botan.h
|
||||
PATH_SUFFIXES botan-2
|
||||
DOC "The botan include directory")
|
||||
|
||||
find_library(BOTAN_LIBRARIES NAMES botan botan-2
|
||||
DOC "The botan library")
|
||||
|
||||
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Botan REQUIRED_VARS BOTAN_LIBRARIES BOTAN_INCLUDE_DIRS)
|
||||
|
||||
if(BOTAN_FOUND)
|
||||
set(BOTAN_LIBRARY ${BOTAN_LIBRARIES} CACHE INTERNAL "")
|
||||
set(BOTAN_INCLUDE_DIR ${BOTAN_INCLUDE_DIRS} CACHE INTERNAL "")
|
||||
set(BOTAN_FOUND ${BOTAN_FOUND} CACHE INTERNAL "")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
mark_as_advanced(BOTAN_INCLUDE_DIRS BOTAN_LIBRARIES)
|
||||
@@ -1,43 +0,0 @@
|
||||
# Find module for Grantlee5 (Qt5) / Grantlee (Qt6 compatible)
|
||||
# Grantlee 5.3.0 provides Qt6-compatible targets
|
||||
|
||||
if (TARGET Grantlee5::Templates)
|
||||
set(Grantlee5_FOUND TRUE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Try config-mode: look for Grantlee5Config.cmake in standard locations
|
||||
# Grantlee 5.3.0 installs to /usr/local/lib/cmake/Grantlee5/
|
||||
find_package(Grantlee5 CONFIG QUIET)
|
||||
if(TARGET Grantlee5::Templates)
|
||||
set(Grantlee5_FOUND TRUE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Try pkg-config as a best-effort (may fail)
|
||||
find_package(PkgConfig QUIET)
|
||||
if (PKG_CONFIG_FOUND)
|
||||
pkg_check_modules(GRANTLEE5 QUIET grantlee-templates)
|
||||
if (GRANTLEE5_FOUND)
|
||||
set(Grantlee5_FOUND TRUE)
|
||||
# No imported targets provided by this shim
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Try config-mode: look for Grantlee5Config.cmake in CMAKE_PREFIX_PATH or installed location
|
||||
# Try to locate Grantlee5Config.cmake via common locations: CMAKE_PREFIX_PATH, EXTERNAL_DIR, repo/external, and typical install paths
|
||||
find_file(_Grantlee5Config NAMES Grantlee5Config.cmake
|
||||
PATHS ${CMAKE_PREFIX_PATH} $ENV{EXTERNAL_DIR} ${CMAKE_SOURCE_DIR}/../external /home/torsten/swy/sandbox/external /repo/external /repo/external/grantlee /usr/local/lib/cmake/Grantlee5
|
||||
PATH_SUFFIXES grantlee/lib/cmake/Grantlee5 lib/cmake/Grantlee5)
|
||||
if(_Grantlee5Config)
|
||||
include(${_Grantlee5Config})
|
||||
if(TARGET Grantlee5::Templates)
|
||||
set(Grantlee5_FOUND TRUE)
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Not found: provide helpful message and stop. Downstream CMakeLists check TARGET Grantlee5::Templates
|
||||
set(Grantlee5_FOUND FALSE)
|
||||
message(STATUS "Grantlee5 not found (shim cmake/FindGrantlee5.cmake); codegen_grantlee will be skipped if present.")
|
||||
@@ -1,40 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
IF(KDCHART_INCLUDE_DIRS AND KDCHART_LIBRARY)
|
||||
SET(KDCHART_FOUND TRUE)
|
||||
ELSE()
|
||||
|
||||
FIND_PATH(KDCHART_INCLUDE_DIRS KDChart/kdchart_export.h)
|
||||
FIND_LIBRARY(KDCHART_LIBRARY NAMES kdchart)
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(KDChart DEFAULT_MSG KDCHART_LIBRARY KDCHART_INCLUDE_DIRS)
|
||||
|
||||
MARK_AS_ADVANCED(KDCHART_INCLUDE_DIRS KDCHART_LIBRARY)
|
||||
ENDIF()
|
||||
|
||||
IF(NOT TARGET KDChart::KDChart)
|
||||
ADD_LIBRARY(KDChart::KDChart UNKNOWN IMPORTED)
|
||||
SET_PROPERTY(TARGET KDChart::KDChart PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${KDCHART_INCLUDE_DIRS}")
|
||||
SET_PROPERTY(TARGET KDChart::KDChart PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${KDCHART_INCLUDE_DIRS}")
|
||||
SET_PROPERTY(TARGET KDChart::KDChart PROPERTY IMPORTED_LOCATION "${KDCHART_LIBRARY}")
|
||||
ENDIF()
|
||||
@@ -1,62 +0,0 @@
|
||||
|
||||
|
||||
# Qt6 only - no Qt5 fallback
|
||||
find_package(Qt6 COMPONENTS Core Gui PrintSupport Sql Svg Widgets Xml QUIET)
|
||||
if(NOT Qt6_FOUND)
|
||||
set(KDReports_FOUND FALSE)
|
||||
return()
|
||||
endif()
|
||||
set(_qt_prefix "Qt6")
|
||||
|
||||
# Prefer KDReports-qt6 package config if installed under standard prefixes
|
||||
# Search in common installation locations for KDReports cmake config
|
||||
list(APPEND CMAKE_PREFIX_PATH /usr/local /usr)
|
||||
find_package(KDReports-qt6 CONFIG QUIET PATHS /usr/local/lib/cmake/KDReports-qt6 /usr/local/lib64/cmake/KDReports-qt6 /usr/lib/cmake/KDReports-qt6 /usr/lib64/cmake/KDReports-qt6)
|
||||
if(KDReports-qt6_FOUND OR KDReports-qt6_CONFIG)
|
||||
message(STATUS "Found KDReports-qt6 package config")
|
||||
set(KDREPORTS_FOUND TRUE)
|
||||
set(KDReports_FOUND TRUE)
|
||||
# KDReports-qt6 config provides KDReports::KDReports imported target
|
||||
# Set variables for compatibility with code that uses them
|
||||
set(KDREPORTS_INCLUDE_DIR "/usr/local/include/KDReports-qt6")
|
||||
set(KDREPORTS_KDREPORTS_INCLUDE_DIR "/usr/local/include/KDReports-qt6")
|
||||
# Check lib64 first, then lib
|
||||
if(EXISTS "/usr/local/lib64/libkdreports-qt6.so")
|
||||
set(KDREPORTS_LIBRARY "/usr/local/lib64/libkdreports-qt6.so")
|
||||
else()
|
||||
set(KDREPORTS_LIBRARY "/usr/local/lib/libkdreports-qt6.so")
|
||||
endif()
|
||||
else()
|
||||
# Search both /usr and /usr/local for apt-installed or manually built KDReports
|
||||
FIND_PATH(KDREPORTS_INCLUDE_DIR KDReports/KDReports.h PATHS /usr/include /usr/local/include)
|
||||
FIND_PATH(KDREPORTS_KDREPORTS_INCLUDE_DIR KDReports.h PATH_SUFFIXES KDReports PATHS /usr/include /usr/local/include)
|
||||
FIND_LIBRARY(KDREPORTS_LIBRARY NAMES kdreports kdreport kdreports-qt6 PATHS /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64)
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(KDReports DEFAULT_MSG
|
||||
KDREPORTS_LIBRARY
|
||||
KDREPORTS_INCLUDE_DIR
|
||||
KDREPORTS_KDREPORTS_INCLUDE_DIR
|
||||
)
|
||||
|
||||
MARK_AS_ADVANCED(KDREPORTS_INCLUDE_DIR KDREPORTS_LIBRARY)
|
||||
MARK_AS_ADVANCED(KDREPORTS_KDREPORTS_INCLUDE_DIR KDREPORTS_LIBRARY)
|
||||
endif()
|
||||
|
||||
# The root CMakeLists may already have created a no-op stub target for
|
||||
# KDReports::KDReports (before FindKDReports ran). When the library was found,
|
||||
# upgrade that existing target to the real imported target instead of skipping.
|
||||
IF(KDReports_FOUND)
|
||||
IF(NOT TARGET KDReports::KDReports)
|
||||
ADD_LIBRARY(KDReports::KDReports UNKNOWN IMPORTED)
|
||||
ENDIF()
|
||||
SET_PROPERTY(TARGET KDReports::KDReports PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${KDREPORTS_INCLUDE_DIR}" "${KDREPORTS_KDREPORTS_INCLUDE_DIR}")
|
||||
SET_PROPERTY(TARGET KDReports::KDReports PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${KDREPORTS_INCLUDE_DIR}" "${KDREPORTS_KDREPORTS_INCLUDE_DIR}")
|
||||
SET_PROPERTY(TARGET KDReports::KDReports PROPERTY IMPORTED_LOCATION "${KDREPORTS_LIBRARY}")
|
||||
SET_PROPERTY(TARGET KDReports::KDReports PROPERTY INTERFACE_COMPILE_DEFINITIONS "")
|
||||
SET_PROPERTY(TARGET KDReports::KDReports APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${_qt_prefix}::Core ${_qt_prefix}::Gui ${_qt_prefix}::PrintSupport ${_qt_prefix}::Widgets)
|
||||
ELSE()
|
||||
IF(NOT TARGET KDReports::KDReports)
|
||||
ADD_LIBRARY(KDReports::KDReports UNKNOWN IMPORTED)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
@@ -1,134 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
IF(NGS_INCLUDE_DIRS AND NGS_LIBRARIES)
|
||||
SET(NGS_FOUND TRUE)
|
||||
ELSE()
|
||||
|
||||
SET(FOM_NAME "RPRFOM20d17E")
|
||||
IF("$ENV{NGS_ROOT}" STREQUAL "")
|
||||
SET(NGS_ROOT "/opt/NGS/NGSPublic")
|
||||
MESSAGE(STATUS "NGS_ROOT env var not set - using ${NGS_ROOT}")
|
||||
ELSE()
|
||||
SET(NGS_ROOT "$ENV{NGS_ROOT}")
|
||||
ENDIF()
|
||||
|
||||
FIND_PROGRAM(NGS_FOMBUILD fombuild
|
||||
PATHS ${NGS_ROOT}/exe
|
||||
)
|
||||
FIND_PATH(NGS_INCLUDE_DIR NGSUtils/SimTime.h
|
||||
PATHS ${NGS_ROOT}/include
|
||||
)
|
||||
FIND_PATH(NGS_SM_INCLUDE_DIR ISystem.h
|
||||
PATHS ${NGS_INCLUDE_DIR}
|
||||
PATH_SUFFIXES SimulationManager
|
||||
)
|
||||
FIND_PATH(NGS_FC_INCLUDE_DIR IRTIAmbassador.h
|
||||
PATHS ${NGS_INCLUDE_DIR}
|
||||
PATH_SUFFIXES RTIFacadeAPI
|
||||
)
|
||||
FIND_PATH(NGS_GE_INCLUDE_DIR SimulatedWorldAPI.h
|
||||
PATHS ${NGS_INCLUDE_DIR}
|
||||
PATH_SUFFIXES SWGeneral
|
||||
)
|
||||
FIND_PATH(NGS_UT_INCLUDE_DIR NGSConfig.h
|
||||
PATHS ${NGS_INCLUDE_DIR}
|
||||
PATH_SUFFIXES NGSUtils
|
||||
)
|
||||
FIND_PATH(NGS_PF_INCLUDE_DIR configureBool.h
|
||||
PATHS ${NGS_INCLUDE_DIR}
|
||||
PATH_SUFFIXES NGSPlatformConfigure
|
||||
)
|
||||
|
||||
FIND_PATH(NGS_FOM_INCLUDE_DIR WorldLocationStruct.h
|
||||
PATHS ${NGS_INCLUDE_DIR}
|
||||
PATH_SUFFIXES sw${FOM_NAME}/rpr
|
||||
PATH_SUFFIXES sw${FOM_NAME}/rpr2
|
||||
)
|
||||
|
||||
FIND_LIBRARY(NGS_LIBRARY NGS
|
||||
PATHS ${NGS_ROOT}/lib
|
||||
PATHS ${NGS_ROOT}/lib64
|
||||
)
|
||||
FIND_LIBRARY(NGS_LIBRARY_SWGENERAL SWGENERAL
|
||||
PATHS ${NGS_ROOT}/lib
|
||||
PATHS ${NGS_ROOT}/lib64
|
||||
)
|
||||
FIND_LIBRARY(NGS_LIBRARY_UTILS NGSUtils
|
||||
PATHS ${NGS_ROOT}/lib
|
||||
PATHS ${NGS_ROOT}/lib64
|
||||
)
|
||||
FIND_LIBRARY(FOM_LIBRARY SW${FOM_NAME}
|
||||
PATHS ${NGS_ROOT}/lib
|
||||
PATHS ${NGS_ROOT}/lib64
|
||||
)
|
||||
FIND_LIBRARY(NGS_LIBRARY_CORBA CorbaNotify
|
||||
PATHS ${NGS_ROOT}/lib/CorbaNotifyCdr
|
||||
)
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(NGS DEFAULT_MSG NGS_LIBRARY
|
||||
NGS_LIBRARY_SWGENERAL
|
||||
NGS_LIBRARY_UTILS
|
||||
NGS_LIBRARY_CORBA
|
||||
FOM_LIBRARY
|
||||
NGS_SM_INCLUDE_DIR
|
||||
NGS_FC_INCLUDE_DIR
|
||||
NGS_GE_INCLUDE_DIR
|
||||
NGS_UT_INCLUDE_DIR
|
||||
)
|
||||
SET(NGS_INCLUDE_DIRS
|
||||
${NGS_INCLUDE_DIR}
|
||||
${NGS_SM_INCLUDE_DIR}
|
||||
${NGS_FC_INCLUDE_DIR}
|
||||
${NGS_GE_INCLUDE_DIR}
|
||||
${NGS_UT_INCLUDE_DIR}
|
||||
${NGS_PF_INCLUDE_DIR}
|
||||
${NGS_FOM_INCLUDE_DIR}
|
||||
CACHE STRING "All ngs include dirs" FORCE
|
||||
)
|
||||
SET(NGS_LIBRARIES
|
||||
${NGS_LIBRARY}
|
||||
${NGS_LIBRARY_SWGENERAL}
|
||||
${NGS_LIBRARY_UTILS}
|
||||
${NGS_LIBRARY_CORBA}
|
||||
${FOM_LIBRARY}
|
||||
CACHE STRING "All ngs libraries" FORCE
|
||||
)
|
||||
MARK_AS_ADVANCED(NGS_INCLUDE_DIR NGS_LIBRARY FOM_LIBRARY)
|
||||
ENDIF()
|
||||
|
||||
SET(NGS_IS_GUEZ OFF)
|
||||
SET(NGS_IS_AHTC OFF)
|
||||
IF (NGS_FOUND)
|
||||
FIND_PATH(NGS_GUEZ_INCLUDE_DIR TacticalStatusStruct.h
|
||||
PATHS ${NGS_FOM_INCLUDE_DIR})
|
||||
FIND_PATH(NGS_AHTC_INCLUDE_DIR LongBowApacheObjClass.h
|
||||
PATHS ${NGS_FOM_INCLUDE_DIR})
|
||||
IF (NGS_GUEZ_INCLUDE_DIR AND EXISTS "${NGS_GUEZ_INCLUDE_DIR}/TacticalStatusStruct.h")
|
||||
SET(NGS_IS_GUEZ ON)
|
||||
MESSAGE(STATUS "NGS - GUEZ version (${NGS_GUEZ_INCLUDE_DIR})")
|
||||
ELSE()
|
||||
SET(NGS_IS_GUEZ OFF)
|
||||
ENDIF()
|
||||
IF (NGS_AHTC_INCLUDE_DIR AND EXISTS "${NGS_AHTC_INCLUDE_DIR}/LongBowApacheObjClass.h")
|
||||
SET(NGS_IS_AHTC ON)
|
||||
MESSAGE(STATUS "NGS - AHTC version (${NGS_AHTC_INCLUDE_DIR})")
|
||||
ELSE()
|
||||
SET(NGS_IS_AHTC OFF)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF(NOT TARGET NGS::NGS)
|
||||
ADD_LIBRARY(NGS::NGS UNKNOWN IMPORTED)
|
||||
SET_PROPERTY(TARGET NGS::NGS PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${NGS_INCLUDE_DIRS})
|
||||
SET_PROPERTY(TARGET NGS::NGS PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES ${NGS_INCLUDE_DIRS})
|
||||
SET_PROPERTY(TARGET NGS::NGS PROPERTY IMPORTED_LOCATION "${NGS_LIBRARY}")
|
||||
|
||||
SET_PROPERTY(TARGET NGS::NGS APPEND PROPERTY INTERFACE_LINK_LIBRARIES
|
||||
"${NGS_LIBRARY_SWGENERAL}"
|
||||
"${NGS_LIBRARY_UTILS}"
|
||||
"${NGS_LIBRARY_CORBA}"
|
||||
"${FOM_LIBRARY}"
|
||||
)
|
||||
ENDIF()
|
||||
@@ -1,103 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# FindPopplerQt6.cmake - Find Poppler Qt6 bindings
|
||||
# Sets: POPPLER_QT6_INCLUDE_DIR, POPPLER_QT6_LIBRARY, PopplerQt6::Poppler target
|
||||
|
||||
if(POPPLER_QT6_INCLUDE_DIR AND POPPLER_QT6_LIBRARY)
|
||||
set(POPPLER_QT6_FOUND TRUE)
|
||||
else()
|
||||
set(_poppler_version_bad FALSE)
|
||||
|
||||
if(NOT WIN32)
|
||||
include(FindPkgConfig)
|
||||
# Prefer poppler-qt6
|
||||
pkg_check_modules(_pc_poppler poppler-qt6)
|
||||
if(_pc_poppler_FOUND)
|
||||
set(_pc_poppler_pkgname poppler-qt6)
|
||||
if(NOT "${_pc_poppler_VERSION}" VERSION_GREATER 0.24.0)
|
||||
set(_poppler_version_bad TRUE)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT _poppler_version_bad)
|
||||
set(POPPLER_QT6_FOUND FALSE)
|
||||
|
||||
# Try library name discovered by pkg-config
|
||||
if(_pc_poppler_FOUND)
|
||||
set(_pkg_var "pkgcfg_lib__pc_poppler_${_pc_poppler_pkgname}")
|
||||
message(STATUS "FindPoppler: pkg-config found ${_pc_poppler_pkgname}, var ${_pkg_var} defined? ${${_pkg_var}}")
|
||||
if(DEFINED ${_pkg_var})
|
||||
set(POPPLER_QT6_LIBRARY ${${_pkg_var}})
|
||||
message(STATUS "FindPoppler: using pkgcfg path ${POPPLER_QT6_LIBRARY}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT POPPLER_QT6_LIBRARY)
|
||||
find_library(POPPLER_QT6_LIBRARY ${_pc_poppler_pkgname}
|
||||
HINTS ${_pc_poppler_LIBRARY_DIRS}
|
||||
)
|
||||
endif()
|
||||
|
||||
# Fallback: try common library names
|
||||
if(NOT POPPLER_QT6_LIBRARY)
|
||||
find_library(POPPLER_QT6_LIBRARY NAMES poppler-qt6 poppler-qt6)
|
||||
endif()
|
||||
|
||||
# Extra fallback paths
|
||||
if(NOT POPPLER_QT6_LIBRARY)
|
||||
find_library(POPPLER_QT6_LIBRARY NAMES poppler-qt6 poppler-qt6
|
||||
PATHS /usr/lib/x86_64-linux-gnu /usr/lib /usr/local/lib)
|
||||
endif()
|
||||
|
||||
# Check for headers (Qt6 layout: poppler/qt6/poppler-qt6.h)
|
||||
find_path(POPPLER_QT6_INCLUDE_DIR poppler/qt6/poppler-qt6.h
|
||||
HINTS ${_pc_poppler_INCLUDE_DIRS}
|
||||
PATH_SUFFIXES poppler
|
||||
)
|
||||
|
||||
if(POPPLER_QT6_LIBRARY AND POPPLER_QT6_INCLUDE_DIR)
|
||||
set(POPPLER_QT6_FOUND TRUE)
|
||||
|
||||
# Expose a modern imported target for consumers
|
||||
if(NOT TARGET PopplerQt6::Poppler)
|
||||
add_library(PopplerQt6::Poppler UNKNOWN IMPORTED)
|
||||
set_target_properties(PopplerQt6::Poppler PROPERTIES
|
||||
IMPORTED_LOCATION "${POPPLER_QT6_LIBRARY}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${POPPLER_QT6_INCLUDE_DIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
# Cache the variables
|
||||
set(POPPLER_QT6_LIBRARY "${POPPLER_QT6_LIBRARY}" CACHE FILEPATH "Path to poppler-qt6 library")
|
||||
set(POPPLER_QT6_INCLUDE_DIR "${POPPLER_QT6_INCLUDE_DIR}" CACHE PATH "Poppler-Qt6 include dirs")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(POPPLER_QT6_LIBRARY AND POPPLER_QT6_INCLUDE_DIR)
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(PopplerQt6 DEFAULT_MSG
|
||||
POPPLER_QT6_LIBRARY
|
||||
POPPLER_QT6_INCLUDE_DIR)
|
||||
else()
|
||||
message(WARNING "Poppler Qt6 bindings not found. Creating placeholder PopplerQt6::Poppler target.")
|
||||
set(POPPLER_QT6_LIBRARY "" CACHE STRING "Placeholder poppler library" FORCE)
|
||||
set(POPPLER_QT6_INCLUDE_DIR "" CACHE STRING "Placeholder poppler include dir" FORCE)
|
||||
if(NOT TARGET PopplerQt6::Poppler)
|
||||
add_library(PopplerQt6::Poppler UNKNOWN IMPORTED)
|
||||
set_property(TARGET PopplerQt6::Poppler PROPERTY INTERFACE_INCLUDE_DIRECTORIES "")
|
||||
endif()
|
||||
set(POPPLER_QT6_FOUND TRUE CACHE INTERNAL "Poppler placeholder present")
|
||||
endif()
|
||||
endif()
|
||||
@@ -1,333 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SET(_rti_gcc_arch "")
|
||||
|
||||
# Suppress CMP0153 warning: EXEC_PROGRAM is deprecated
|
||||
if(POLICY CMP0153)
|
||||
cmake_policy(SET CMP0153 OLD)
|
||||
endif()
|
||||
|
||||
# Check if RTI_DIR is not set OR is empty (cached empty string from previous failed detection)
|
||||
IF(NOT RTI_DIR OR RTI_DIR STREQUAL "")
|
||||
# First check RTI_INSTALL_DIR CMake variable (set by parent CMakeLists.txt)
|
||||
IF(RTI_INSTALL_DIR AND EXISTS "${RTI_INSTALL_DIR}")
|
||||
SET(_RTI_DIR "${RTI_INSTALL_DIR}")
|
||||
ELSE()
|
||||
SET(_arch "unknown")
|
||||
IF(WIN32)
|
||||
SET(_RTI_DIR $ENV{DDS_PATH})
|
||||
IF(NOT _RTI_DIR)
|
||||
GET_FILENAME_COMPONENT(_rti_root_path "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Real-Time Innovations\\RTI Connext DDS Pro 5.2.3;Location]" ABSOLUTE)
|
||||
SET(_RTI_DIR "${_rti_root_path}")
|
||||
ENDIF()
|
||||
IF(MSVC_VERSION EQUAL 1900)
|
||||
SET(_rti_msvc_ver "VS2015")
|
||||
ELSEIF(MSVC_VERSION GREATER_EQUAL 1910)
|
||||
SET(_rti_msvc_ver "VS2017")
|
||||
ENDIF()
|
||||
IF(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
SET(_rti_msvc_ver "x64Win64${_rti_msvc_ver}")
|
||||
ELSE()
|
||||
SET(_rti_msvc_ver "i86Win32${_rti_msvc_ver}")
|
||||
ENDIF()
|
||||
IF(NOT ${_rti_root_path})
|
||||
SET(_RTI_DIR $ENV{KDEROOT})
|
||||
FILE(TO_CMAKE_PATH "${_RTI_DIR}" _RTI_DIR)
|
||||
IF(NOT EXISTS "${_RTI_DIR}" OR NOT IS_DIRECTORY "${_RTI_DIR}")
|
||||
SET(_RTI_DIR $ENV{WORKSPACE})
|
||||
FILE(TO_CMAKE_PATH "${_RTI_DIR}" _RTI_DIR)
|
||||
ENDIF()
|
||||
IF(NOT EXISTS "${_RTI_DIR}" OR NOT IS_DIRECTORY "${_RTI_DIR}")
|
||||
SET(_RTI_DIR ${EXTERNAL_LIBRARY_DIR})
|
||||
FILE(TO_CMAKE_PATH "${_RTI_DIR}" _RTI_DIR)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
SET(_arch "${_rti_msvc_ver}")
|
||||
ELSE(WIN32)
|
||||
SET(_RTI_DIR $ENV{DDS_PATH})
|
||||
IF(NOT _RTI_DIR)
|
||||
# Try local external directory first (check multiple levels for different repo structures)
|
||||
# Check container path first (/workspace/external), then host-relative paths
|
||||
IF(EXISTS "${CMAKE_SOURCE_DIR}/external/rti_connext_dds-7.7.0")
|
||||
SET(_RTI_DIR "${CMAKE_SOURCE_DIR}/external/rti_connext_dds-7.7.0")
|
||||
ELSEIF(EXISTS "${CMAKE_SOURCE_DIR}/../external/rti_connext_dds-7.7.0")
|
||||
SET(_RTI_DIR "${CMAKE_SOURCE_DIR}/../external/rti_connext_dds-7.7.0")
|
||||
ELSEIF(EXISTS "${CMAKE_SOURCE_DIR}/../../../external/rti_connext_dds-7.7.0")
|
||||
SET(_RTI_DIR "${CMAKE_SOURCE_DIR}/../../../external/rti_connext_dds-7.7.0")
|
||||
ELSE()
|
||||
SET(_RTI_DIR "/opt/RTI")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(NOT EXISTS "${_RTI_DIR}" OR NOT IS_DIRECTORY "${_RTI_DIR}")
|
||||
MESSAGE(WARNING "RTI directory ${_RTI_DIR} not found; continuing without RTI. Set DDS_PATH to RTI installation to enable RTI features.")
|
||||
# mark as not available
|
||||
set(_RTI_DIR_NOT_FOUND TRUE)
|
||||
set(_RTI_DIR "")
|
||||
ENDIF()
|
||||
SET(_rti_gcc_arch "x64Linux3gcc4.8.2")
|
||||
IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
IF(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.0.0)
|
||||
# Prefer newer gcc-based RTI builds; try a sequence then fall back to any x64Linux4gcc* dir found under RTI lib
|
||||
SET(_preferred_archs "x64Linux4gcc8.5.0;x64Linux4gcc7.3.0;x64Linux3gcc5.4.0")
|
||||
SET(_found_arch "")
|
||||
foreach(_cand IN LISTS _preferred_archs)
|
||||
if(EXISTS "${_RTI_DIR}/lib/${_cand}")
|
||||
SET(_found_arch "${_cand}")
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
if(_found_arch STREQUAL "")
|
||||
# fallback: pick any x64Linux* directory under lib
|
||||
file(GLOB _rti_arch_dirs RELATIVE "${_RTI_DIR}/lib" "${_RTI_DIR}/lib/x64Linux*")
|
||||
list(LENGTH _rti_arch_dirs _rti_arch_dirs_len)
|
||||
if(_rti_arch_dirs_len GREATER 0)
|
||||
list(GET _rti_arch_dirs 0 _found_arch)
|
||||
endif()
|
||||
endif()
|
||||
if(NOT _found_arch STREQUAL "")
|
||||
SET(_rti_gcc_arch "${_found_arch}")
|
||||
else()
|
||||
# final fallbacks
|
||||
SET(_rti_gcc_arch "x64Linux4gcc7.3.0")
|
||||
endif()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
SET(_arch "${_rti_gcc_arch}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
SET(RTI_DIR "${_RTI_DIR}" CACHE STRING "RTI base path" FORCE)
|
||||
MESSAGE(STATUS "Trying to use RTI from ${RTI_DIR} with arch ${_arch}")
|
||||
ELSE()
|
||||
# RTI_DIR was provided externally - auto-detect architecture
|
||||
SET(_rti_gcc_arch "x64Linux3gcc4.8.2")
|
||||
IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
IF(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.0.0)
|
||||
# Prefer newer gcc-based RTI builds; try a sequence then fall back to any x64Linux4gcc* dir found under RTI lib
|
||||
SET(_preferred_archs "x64Linux4gcc8.5.0;x64Linux4gcc7.3.0;x64Linux3gcc5.4.0")
|
||||
SET(_found_arch "")
|
||||
foreach(_cand IN LISTS _preferred_archs)
|
||||
if(EXISTS "${RTI_DIR}/lib/${_cand}")
|
||||
SET(_found_arch "${_cand}")
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
if(_found_arch STREQUAL "")
|
||||
# fallback: pick any x64Linux* directory under lib
|
||||
file(GLOB _rti_arch_dirs RELATIVE "${RTI_DIR}/lib" "${RTI_DIR}/lib/x64Linux*")
|
||||
list(LENGTH _rti_arch_dirs _rti_arch_dirs_len)
|
||||
if(_rti_arch_dirs_len GREATER 0)
|
||||
list(GET _rti_arch_dirs 0 _found_arch)
|
||||
endif()
|
||||
endif()
|
||||
if(NOT _found_arch STREQUAL "")
|
||||
SET(_rti_gcc_arch "${_found_arch}")
|
||||
else()
|
||||
# final fallbacks
|
||||
SET(_rti_gcc_arch "x64Linux4gcc7.3.0")
|
||||
endif()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
MESSAGE(STATUS "Using externally provided RTI from ${RTI_DIR} with arch ${_rti_gcc_arch}")
|
||||
ENDIF()
|
||||
IF(WIN32)
|
||||
SET(_rti_include_hint "${RTI_DIR}/include/")
|
||||
SET(_rti_library_hint "${RTI_DIR}/lib/${_rti_msvc_ver}/")
|
||||
ELSE()
|
||||
SET(_rti_include_hint "${RTI_DIR}/include/")
|
||||
SET(_rti_library_hint "${RTI_DIR}/lib/")
|
||||
ENDIF()
|
||||
|
||||
|
||||
IF(NOT RTI_INCLUDE_DIR)
|
||||
if(DEFINED _RTI_DIR_NOT_FOUND AND _RTI_DIR STREQUAL "")
|
||||
# RTI directory was not found earlier; skip searching for includes and create empty placeholder
|
||||
message(WARNING "Skipping RTI include search because RTI installation was not found")
|
||||
set(RTI_INCLUDE_DIR "")
|
||||
set(RTI_INCLUDE_DIRS "" CACHE STRING "RTI include directories" FORCE)
|
||||
|
||||
# Create placeholder INTERFACE targets for all RTI libraries when RTI is not installed
|
||||
# These allow configuration to succeed but will cause link errors if actually used
|
||||
SET(_RTI_LIBS nddscore nddsc nddscpp2 rtiroutingservice)
|
||||
FOREACH(_lib ${_RTI_LIBS})
|
||||
SET(_tgt_name RTI::${_lib})
|
||||
IF(NOT TARGET ${_tgt_name})
|
||||
ADD_LIBRARY(${_tgt_name} INTERFACE IMPORTED)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_INCLUDE_DIRECTORIES "")
|
||||
# Set dummy library variables to satisfy Ninja dependency tracking
|
||||
SET(RTI_${_lib}_LIBRARY "" CACHE STRING "RTI ${_lib} library (placeholder)" FORCE)
|
||||
SET(RTI_${_lib}_LIBRARY_RELEASE "" CACHE STRING "RTI ${_lib} library release (placeholder)" FORCE)
|
||||
SET(RTI_${_lib}_LIBRARY_DEBUG "" CACHE STRING "RTI ${_lib} library debug (placeholder)" FORCE)
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
SET(RTI_LIBRARIES "" CACHE STRING "All rti libraries (placeholder)" FORCE)
|
||||
SET(RTI_FOUND FALSE CACHE BOOL "RTI not found" FORCE)
|
||||
# Force BUILD_RTI to OFF when RTI is not actually installed
|
||||
SET(BUILD_RTI OFF CACHE BOOL "Build with RTI support" FORCE)
|
||||
MESSAGE(WARNING "RTI not found - disabling BUILD_RTI. Set DDS_PATH to RTI installation to enable RTI features.")
|
||||
return()
|
||||
else()
|
||||
# Use PATHS instead of HINTS for more reliable path resolution
|
||||
FIND_PATH(RTI_INCLUDE_DIR ndds/ndds_cpp.h PATHS ${_rti_include_hint} NO_DEFAULT_PATH)
|
||||
IF(RTI_INCLUDE_DIR)
|
||||
SET(RTI_INCLUDE_DIRS "${RTI_INCLUDE_DIR}" "${RTI_INCLUDE_DIR}/ndds" "${RTI_INCLUDE_DIR}/ndds/hpp" CACHE STRING "RTI include directories" FORCE)
|
||||
MARK_AS_ADVANCED(RTI_INCLUDE_DIRS)
|
||||
ELSE()
|
||||
MESSAGE(FATAL "Could not find RTI include directory at ${_rti_include_hint}")
|
||||
ENDIF()
|
||||
endif()
|
||||
ENDIF()
|
||||
|
||||
|
||||
IF(NOT RTI_DDSGEN_EXECUTABLE)
|
||||
FIND_PROGRAM(RTI_DDSGEN_EXECUTABLE NAMES rtiddsgen rtiddsgen.bat HINTS ${RTI_DIR}/scripts ${RTI_DIR}/bin)
|
||||
ENDIF()
|
||||
IF(NOT RTI_VERSION_MAJOR)
|
||||
EXEC_PROGRAM(${RTI_DDSGEN_EXECUTABLE} ARGS -version OUTPUT_VARIABLE _dds_version_output)
|
||||
STRING(REGEX REPLACE ".* ([0-9]\\.[0-9]\\.[0-9]).*" "\\1" _dds_version_output ${_dds_version_output})
|
||||
SET(_rti_version_major 5)
|
||||
IF(_dds_version_output VERSION_GREATER 2.9.9)
|
||||
SET(_rti_version_major 6)
|
||||
ENDIF()
|
||||
SET(RTI_VERSION_MAJOR ${_rti_version_major} CACHE STRING "RTI version" FORCE)
|
||||
ENDIF()
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
|
||||
# Set policy for imported target library requirements
|
||||
if(POLICY CMP0111)
|
||||
cmake_policy(SET CMP0111 NEW)
|
||||
endif()
|
||||
|
||||
SET(_RTI_LIBS nddscore nddsc nddscpp2 rtiroutingservice)
|
||||
SET(_libs "")
|
||||
SET(_lib_vars "")
|
||||
|
||||
# Build list of library search paths including arch-specific subdirs
|
||||
set(_rti_lib_search_paths "${RTI_DIR}/lib" "${RTI_DIR}/lib/${_rti_gcc_arch}")
|
||||
# Also scan for any arch subdirs under lib/
|
||||
file(GLOB _rti_arch_dirs "${RTI_DIR}/lib/*")
|
||||
foreach(_arch_dir IN LISTS _rti_arch_dirs)
|
||||
if(IS_DIRECTORY "${_arch_dir}")
|
||||
list(APPEND _rti_lib_search_paths "${_arch_dir}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
FOREACH(_lib ${_RTI_LIBS})
|
||||
SET(_libname "RTI_${_lib}_LIBRARY")
|
||||
SET(_libname_release "RTI_${_lib}_LIBRARY_RELEASE")
|
||||
SET(_libname_debug "RTI_${_lib}_LIBRARY_DEBUG")
|
||||
|
||||
# Build explicit search paths for this library
|
||||
set(_lib_search_paths
|
||||
"${RTI_DIR}/lib/${_rti_gcc_arch}"
|
||||
"${RTI_DIR}/lib"
|
||||
)
|
||||
|
||||
# Find release library (no suffix)
|
||||
FIND_LIBRARY(${_libname_release}
|
||||
NAMES ${_lib}
|
||||
PATHS ${_lib_search_paths}
|
||||
NO_DEFAULT_PATH)
|
||||
|
||||
# Find debug library (d suffix on Linux)
|
||||
FIND_LIBRARY(${_libname_debug}
|
||||
NAMES ${_lib}d
|
||||
PATHS ${_lib_search_paths}
|
||||
NO_DEFAULT_PATH)
|
||||
|
||||
# Set combined library variable
|
||||
IF(${_libname_release})
|
||||
SET(${_libname} "${${_libname_release}}" CACHE STRING "RTI ${_lib} library" FORCE)
|
||||
ELSEIF(${_libname_debug})
|
||||
SET(${_libname} "${${_libname_debug}}" CACHE STRING "RTI ${_lib} library" FORCE)
|
||||
ENDIF()
|
||||
SET(_tgt_name RTI::${_lib})
|
||||
|
||||
IF(NOT TARGET ${_tgt_name})
|
||||
ADD_LIBRARY(${_tgt_name} UNKNOWN IMPORTED)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${RTI_INCLUDE_DIRS}")
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${RTI_INCLUDE_DIRS}")
|
||||
|
||||
IF(UNIX)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_COMPILE_DEFINITIONS "RTI_UNIX;RTI_LINUX;RTI_64BIT" )
|
||||
ENDIF()
|
||||
IF(WIN32)
|
||||
IF("${_lib}" STREQUAL "rtiroutingservice")
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_COMPILE_DEFINITIONS "RTI_WIN32;RTI_routingservice_DLL_VARIABLE" )
|
||||
ELSE()
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_COMPILE_DEFINITIONS "RTI_WIN32;NDDS_DLL_VARIABLE" )
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
# Set library locations - use release for both configs if debug not found
|
||||
IF(${_libname}_RELEASE AND ${_libname}_DEBUG)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_CONFIGURATIONS RELEASE DEBUG)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION_RELEASE "${${_libname}_RELEASE}")
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION_DEBUG "${${_libname}_DEBUG}")
|
||||
# Set default IMPORTED_LOCATION for non-configured builds
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION "${${_libname}_RELEASE}")
|
||||
ELSEIF(${_libname}_RELEASE)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_CONFIGURATIONS RELEASE DEBUG)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION_RELEASE "${${_libname}_RELEASE}")
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION_DEBUG "${${_libname}_RELEASE}")
|
||||
# Set default IMPORTED_LOCATION for non-configured builds
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION "${${_libname}_RELEASE}")
|
||||
ELSEIF(${_libname}_DEBUG)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_CONFIGURATIONS RELEASE DEBUG)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION_RELEASE "${${_libname}_DEBUG}")
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION_DEBUG "${${_libname}_DEBUG}")
|
||||
# Set default IMPORTED_LOCATION for non-configured builds
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION "${${_libname}_DEBUG}")
|
||||
ELSE()
|
||||
# No library found - skip creating this target
|
||||
MESSAGE(WARNING "RTI library ${_lib} not found in ${RTI_DIR}")
|
||||
SET(${_libname} "" CACHE STRING "RTI ${_lib} library (not found)" FORCE)
|
||||
CONTINUE()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
LIST(APPEND _libs "${${_libname}}")
|
||||
# rtiroutingservice is optional - only add required libs to _lib_vars for FIND_PACKAGE_HANDLE_STANDARD_ARGS
|
||||
IF(NOT "${_lib}" STREQUAL "rtiroutingservice")
|
||||
LIST(APPEND _lib_vars "${_libname}")
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
|
||||
IF(TARGET RTI::nddscore AND UNIX)
|
||||
SET_PROPERTY(TARGET RTI::nddscore PROPERTY INTERFACE_LINK_LIBRARIES "dl" )
|
||||
ENDIF()
|
||||
|
||||
SET(RTI_LIBRARIES ${_libs} CACHE STRING "All rti libraries" FORCE)
|
||||
MARK_AS_ADVANCED(RTI_LIBRARIES)
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(RTI DEFAULT_MSG RTI_DIR RTI_INCLUDE_DIR RTI_DDSGEN_EXECUTABLE ${_lib_vars})
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
IF(SCHUSSTAFEL_INCLUDE_DIR AND SCHUSSTAFEL_LIBRARY)
|
||||
SET(SCHUSSTAFEL_FOUND TRUE)
|
||||
ELSE(SCHUSSTAFEL_INCLUDE_DIR AND SCHUSSTAFEL_LIBRARY)
|
||||
|
||||
FIND_PATH(SCHUSSTAFEL_INCLUDE_DIR Schusstafel.h)
|
||||
FIND_LIBRARY_WITH_DEBUG(SCHUSSTAFEL_LIBRARY WIN32_DEBUG_POSTFIX d NAMES Schusstafel libSchusstafel)
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Schusstafel DEFAULT_MSG SCHUSSTAFEL_LIBRARY SCHUSSTAFEL_INCLUDE_DIR)
|
||||
|
||||
MARK_AS_ADVANCED(SCHUSSTAFEL_INCLUDE_DIR SCHUSSTAFEL_LIBRARY)
|
||||
ENDIF(SCHUSSTAFEL_INCLUDE_DIR AND SCHUSSTAFEL_LIBRARY)
|
||||
@@ -1,104 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
IF(NOT TMSIF_DIR)
|
||||
SET(_arch "unknown")
|
||||
SET(_TMSIF_DIR $ENV{TMSIF_PATH})
|
||||
IF(NOT _TMSIF_DIR)
|
||||
SET(_TMSIF_DIR "/opt/tmsif")
|
||||
ENDIF()
|
||||
IF(NOT EXISTS "${_TMSIF_DIR}" OR NOT IS_DIRECTORY "${_TMSIF_DIR}")
|
||||
MESSAGE(FATAL_ERROR "Umgebungsvariable TMSIF_PATH nicht gesetzt!")
|
||||
ENDIF()
|
||||
SET(TMSIF_DIR "${_TMSIF_DIR}" CACHE STRING "TMSIF base path" FORCE)
|
||||
MESSAGE(STATUS "Trying to use TMSIF_DIR from ${TMSIF_DIR}")
|
||||
ENDIF()
|
||||
SET(_tmsif_include_hint "${TMSIF_DIR}/include/")
|
||||
SET(_tmsif_library_hint "${TMSIF_DIR}/lib/")
|
||||
|
||||
|
||||
IF(NOT TMSIF_INCLUDE_DIR)
|
||||
FIND_PATH(TMSIF_INCLUDE_DIR Common.h HINTS ${_tmsif_include_hint})
|
||||
IF(TMSIF_INCLUDE_DIR)
|
||||
SET(TMSIF_INCLUDE_DIRS "${TMSIF_INCLUDE_DIR}" "${TMSIF_INCLUDE_DIR}/ddscxx" CACHE STRING "TMSIF include directories" FORCE)
|
||||
MARK_AS_ADVANCED(TMSIF_INCLUDE_DIRS)
|
||||
ELSE()
|
||||
MESSAGE(FATAL "Could not find TMSIF include directory at ${_tmsif_include_hint}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
|
||||
|
||||
SET(_TMSIF_LIBS tmsif-cyclone ddscxx ddkit-cyclone )
|
||||
SET(_libs "")
|
||||
SET(_lib_vars "")
|
||||
|
||||
FOREACH(_lib ${_TMSIF_LIBS})
|
||||
SET(_libname "TMSIF_${_lib}_LIBRARY")
|
||||
IF (NOT ${_libname})
|
||||
FIND_LIBRARY_WITH_DEBUG("${_libname}"
|
||||
WIN32_DEBUG_POSTFIX d
|
||||
NAMES ${_lib}
|
||||
HINTS ${_tmsif_library_hint} ${TMSIF_DIR}/lib )
|
||||
ENDIF()
|
||||
SET(_tgt_name TMSIF::${_lib})
|
||||
|
||||
IF(NOT TARGET ${_tgt_name})
|
||||
ADD_LIBRARY(${_tgt_name} UNKNOWN IMPORTED)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${TMSIF_INCLUDE_DIRS}")
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${TMSIF_INCLUDE_DIRS}")
|
||||
|
||||
IF(UNIX)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_COMPILE_DEFINITIONS "TMSIF_UNIX;TMSIF_LINUX;TMSIF_64BIT" )
|
||||
ENDIF()
|
||||
IF(${_libname}_RELEASE)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION_RELEASE "${${_libname}_RELEASE}")
|
||||
ENDIF()
|
||||
IF(${_libname}_DEBUG)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION_DEBUG "${${_libname}_DEBUG}")
|
||||
ENDIF()
|
||||
IF(NOT ${_libname}_RELEASE AND NOT ${_libname}_DEBUG)
|
||||
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION "${${_libname}}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
LIST(APPEND _libs "${${_libname}}")
|
||||
LIST(APPEND _lib_vars "${_libname}")
|
||||
ENDFOREACH()
|
||||
|
||||
|
||||
SET(TMSIF_LIBRARIES ${_libs} CACHE STRING "All TMSIF libraries" FORCE)
|
||||
MARK_AS_ADVANCED(TMSIF_LIBRARIES)
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(TMSIF DEFAULT_MSG TMSIF_DIR TMSIF_INCLUDE_DIR ${_lib_vars})
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
IF(VLC_INCLUDE_DIR AND VLC_LIBRARIES)
|
||||
|
||||
|
||||
SET(VLC_FOUND TRUE)
|
||||
|
||||
ELSE()
|
||||
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
INCLUDE(FindLibraryWithDebug)
|
||||
|
||||
FIND_LIBRARY_WITH_DEBUG(VLC_LIBRARIES WIN32_DEBUG_POSTFIX d NAMES vlc libvlc)
|
||||
FIND_PATH(VLC_INCLUDE_DIR vlc/vlc.h)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(VLC DEFAULT_MSG VLC_LIBRARIES VLC_INCLUDE_DIR)
|
||||
|
||||
FIND_PATH(VLC_IS_2_0_ABOVE vlc/libvlc_version.h
|
||||
PATHS ${VLC_INCLUDE_DIR}
|
||||
NO_DEFAULT_PATH)
|
||||
|
||||
IF(NOT VLC_IS_2_0_ABOVE)
|
||||
MESSAGE(FATAL_ERROR "Need at least VLC 2.x")
|
||||
ENDIF()
|
||||
MARK_AS_ADVANCED(VLC_DEFINES)
|
||||
|
||||
ENDIF()
|
||||
@@ -1,81 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
IF(XSD_INCLUDE_DIR AND XSD_COMPILER)
|
||||
SET(XSD_FOUND TRUE)
|
||||
ELSE(XSD_INCLUDE_DIR AND XSD_COMPILER)
|
||||
|
||||
FIND_PROGRAM(XSD_COMPILER NAMES xsdcxx xsd)
|
||||
FIND_PATH(XSD_INCLUDE_DIR xsd/cxx/config.hxx)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XSD DEFAULT_MSG
|
||||
XSD_COMPILER
|
||||
XSD_INCLUDE_DIR
|
||||
)
|
||||
|
||||
MARK_AS_ADVANCED(XSD_COMPILER
|
||||
XSD_INCLUDE_DIR)
|
||||
ENDIF(XSD_INCLUDE_DIR AND XSD_COMPILER)
|
||||
|
||||
MACRO(XSD_GENERATE_TREE srcList infile)
|
||||
GET_FILENAME_COMPONENT(output ${infile} NAME)
|
||||
GET_FILENAME_COMPONENT(input ${infile} ABSOLUTE)
|
||||
GET_FILENAME_COMPONENT(dir ${infile} DIRECTORY)
|
||||
|
||||
EXEC_PROGRAM(${XSD_COMPILER} ARGS version OUTPUT_VARIABLE _xsd_version_output)
|
||||
STRING(REGEX REPLACE ".* ([0-9]\\.[0-9]\\.[0-9]).*" "\\1" _xsd_version_output ${_xsd_version_output})
|
||||
|
||||
SET(_xsd_in ${input})
|
||||
SET(_cpp_out ${dir}/${output}.cxx)
|
||||
SET(_hpp_out ${dir}/${output}.hxx)
|
||||
|
||||
STRING(REPLACE ".xsd" "" _cpp_out "${_cpp_out}")
|
||||
STRING(REPLACE ".xsd" "" _hpp_out "${_hpp_out}")
|
||||
SET(additional_xsd_args "")
|
||||
IF(_xsd_version_output VERSION_GREATER 3.9.0)
|
||||
IF(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.7.0)
|
||||
SET(additional_xsd_args --std c++11)
|
||||
ELSE()
|
||||
IF(WIN32 OR NOT CMAKE_COMPILER_IS_GNUCC)
|
||||
SET(additional_xsd_args --std c++11)
|
||||
ENDIF(WIN32 OR NOT CMAKE_COMPILER_IS_GNUCC)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${dir}
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${dir}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
ADD_CUSTOM_COMMAND(OUTPUT ${_cpp_out} ${_hpp_out}
|
||||
COMMAND ${XSD_COMPILER}
|
||||
ARGS cxx-tree ${additional_xsd_args} --generate-serialization ${_xsd_in}
|
||||
DEPENDS ${_xsd_in} ${CMAKE_CURRENT_BINARY_DIR}/${dir}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${dir}
|
||||
)
|
||||
LIST(APPEND ${srcList} ${_cpp_out} ${_hpp_out} ${infile})
|
||||
ENDMACRO(XSD_GENERATE_TREE srcList infile)
|
||||
@@ -1,527 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
INCLUDE(CMakeParseArguments)
|
||||
|
||||
MACRO(_ADD_SERVICE_RESTART_FLAG svcName)
|
||||
|
||||
STRING(TOUPPER ${svcName} _svcNameUpper)
|
||||
STRING(TOLOWER ${svcName} _svcNameLower)
|
||||
SET(_optionName DONTRESTARTSVC_${_svcNameUpper})
|
||||
OPTION(${_optionName} "Do not automatically restart Service ${_svcNameUpper} (build dir only)" OFF)
|
||||
SET(_fn "${CMAKE_BINARY_DIR}/share/Lts/xml/${_svcNameLower}.dontRestart")
|
||||
IF (${_optionName})
|
||||
FILE(WRITE ${_fn} "blub")
|
||||
ELSE()
|
||||
FILE(REMOVE ${_fn})
|
||||
ENDIF()
|
||||
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
MACRO(_GET_SERVICENAME xmlFile_in svcNameOut)
|
||||
GET_FILENAME_COMPONENT(xmlFile ${xmlFile_in} NAME_WE)
|
||||
SET(_idx -1)
|
||||
STRING(FIND "${xmlFile}" "_" _idx)
|
||||
STRING(SUBSTRING "${xmlFile}" 0 ${_idx} ${svcNameOut})
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(_CODEGEN_ACTION action srcList xmlIn in_files out_files)
|
||||
LIST(APPEND dependFiles ${ARGN} ${xmlIn} ${${in_files}})
|
||||
|
||||
|
||||
|
||||
|
||||
SET(_cg $<TARGET_FILE:ngl_codegen>)
|
||||
SET(_env "QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt6/plugins/kf6/ktexttemplate")
|
||||
ADD_CUSTOM_COMMAND(OUTPUT ${${out_files}}
|
||||
COMMAND ${CMAKE_COMMAND} -E env ${_env} ${_cg}
|
||||
ARGS -s ${xmlIn}
|
||||
-a ${action}
|
||||
-o ${CMAKE_CURRENT_BINARY_DIR}
|
||||
-i ${CMAKE_BINARY_DIR}/service_idl_files.txt
|
||||
${${in_files}}
|
||||
DEPENDS ${_cg} ${dependFiles}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
LIST(APPEND ${srcList} ${${out_files}})
|
||||
GET_FILENAME_COMPONENT(_xml "${CMAKE_CURRENT_SOURCE_DIR}/${xmlIn}" ABSOLUTE)
|
||||
SET_PROPERTY(GLOBAL APPEND PROPERTY CODEGEN_IDL_FILES "${_xml}")
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(CODEGEN_DATABASE_STRUCTS srcList_h xmlFile_in)
|
||||
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
||||
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_structs.cpp.grantlee"
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_structs.h.grantlee"
|
||||
)
|
||||
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_structs.cpp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_structs.h"
|
||||
)
|
||||
_CODEGEN_ACTION("DATABASE" ${srcList_h} ${xmlFile_in} in_files out_files ${ARGN})
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(CODEGEN_DATABASE_SQL srcList xmlFile_in)
|
||||
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
||||
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db.h.grantlee"
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_impl.cpp.grantlee"
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_impl.h.grantlee"
|
||||
)
|
||||
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.cpp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.h"
|
||||
)
|
||||
_CODEGEN_ACTION("DATABASE" ${srcList} ${xmlFile_in} in_files out_files ${ARGN})
|
||||
IF(NOT POLICY CMP0071)
|
||||
QT6_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.h")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(CODEGEN_DAO srcList xmlFile_in)
|
||||
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
||||
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dao.cpp.grantlee"
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dao.h.grantlee"
|
||||
)
|
||||
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dao.cpp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dao.h"
|
||||
)
|
||||
_CODEGEN_ACTION("dao" ${srcList} ${xmlFile_in} in_files out_files ${ARGN})
|
||||
IF(NOT POLICY CMP0071)
|
||||
QT6_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dao.cpp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dao.h")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(CODEGEN_DATABASE srcList xmlFile_in)
|
||||
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
||||
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_structs.cpp.grantlee"
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_structs.h.grantlee"
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_impl.cpp.grantlee"
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_impl.h.grantlee"
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db.h.grantlee"
|
||||
)
|
||||
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_structs.cpp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_structs.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.cpp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db.h"
|
||||
)
|
||||
_CODEGEN_ACTION("DATABASE_SERVER" ${srcList} ${xmlFile_in} in_files out_files ${ARGN})
|
||||
IF(NOT POLICY CMP0071)
|
||||
QT6_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.h")
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
MACRO(INSTALL_SHARED_FILES srcList)
|
||||
SET(options)
|
||||
SET(oneValueArgs DESTINATION)
|
||||
SET(multiValueArgs FILES)
|
||||
CMAKE_PARSE_ARGUMENTS(_ISF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
SET(build_out_dir ${CMAKE_BINARY_DIR}/share/Lts/${_ISF_DESTINATION})
|
||||
SET(inst_out_dir share/Lts/${_ISF_DESTINATION})
|
||||
|
||||
FOREACH(filename ${_ISF_FILES})
|
||||
GET_FILENAME_COMPONENT(fn ${filename} NAME)
|
||||
SET(build_out_file ${build_out_dir}/${fn})
|
||||
SET(in_file ${CMAKE_CURRENT_SOURCE_DIR}/${filename})
|
||||
ADD_CUSTOM_COMMAND(OUTPUT ${build_out_file}
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS -E make_directory ${build_out_dir}
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS -E copy_if_different ${in_file} ${build_out_file}
|
||||
DEPENDS ${in_file}
|
||||
)
|
||||
LIST(APPEND ${srcList} ${in_file} ${build_out_file})
|
||||
ENDFOREACH()
|
||||
NGL_INSTALL(${_ISF_UNPARSED_ARGUMENTS} FILES ${_ISF_FILES} DESTINATION ${inst_out_dir})
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(CODEGEN_SQL srcList xmlFile_in)
|
||||
_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)
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(CODEGEN_HANDLE_SVC_XML srcList xmlFile_in)
|
||||
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
||||
|
||||
SET(out_dir_xml "${CMAKE_BINARY_DIR}/share/Lts/xml/")
|
||||
SET(out_file_xml "${out_dir_xml}/${svcNameOut}.xml")
|
||||
ADD_CUSTOM_COMMAND(OUTPUT ${out_file_xml}
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS -E make_directory ${out_dir_xml}
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS -E copy_if_different ${xmlFile_in} ${out_file_xml}
|
||||
DEPENDS ${xmlFile_in}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
LIST(APPEND ${srcList} ${xmlFile_in} ${out_file_xml})
|
||||
|
||||
_ADD_SERVICE_RESTART_FLAG(${svcNameOut})
|
||||
|
||||
|
||||
NGL_INSTALL(SV AAR FILES ${out_file_xml} DESTINATION share/Lts/xml)
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(CODEGEN_IDL_SVC srcList xmlFile_in)
|
||||
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
||||
|
||||
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}.idl"
|
||||
"${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")
|
||||
|
||||
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()
|
||||
|
||||
# Use Python 3 (Python 2.7 not available on modern distributions like openSUSE Leap 16.0)
|
||||
FIND_PACKAGE(Python3 COMPONENTS Interpreter REQUIRED)
|
||||
SET(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
|
||||
|
||||
MACRO(CODEGEN_TOPIC_TYPEDEFS srcList xmlFile_in)
|
||||
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
||||
SET(inFile ${xmlFile_in})
|
||||
IF(NOT IS_ABSOLUTE ${inFile})
|
||||
SET(inFile ${CMAKE_CURRENT_SOURCE_DIR}/${inFile})
|
||||
IF(NOT EXISTS ${inFile})
|
||||
SET(inFile ${CMAKE_CURRENT_BINARY_DIR}/${inFile})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
SET(prog ${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/codegen_simple.py)
|
||||
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dts_types.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc_types.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_fts_types.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc_types.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_operator_rights.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_operator_rights.cpp"
|
||||
"${CMAKE_BINARY_DIR}/share/Lts/sql/${svcNameOut}_operator_rights.sql"
|
||||
)
|
||||
|
||||
ADD_CUSTOM_COMMAND( OUTPUT ${out_files}
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS -E make_directory ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS -E make_directory ${CMAKE_BINARY_DIR}/share/Lts/sql/
|
||||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
ARGS ${prog} ALL
|
||||
${inFile}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
ARGS ${prog} SQL
|
||||
${inFile}
|
||||
${CMAKE_BINARY_DIR}/share/Lts/sql
|
||||
DEPENDS ${inFile}
|
||||
${prog}
|
||||
)
|
||||
LIST(APPEND ${srcList} ${out_files})
|
||||
SET_PROPERTY(GLOBAL APPEND PROPERTY CODEGEN_XML_FILES "${inFile}")
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(CODEGEN_CLIENT_TOPICS_IFC srcList xmlFile_in)
|
||||
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.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)
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(CODEGEN_CLIENT_TOPICS_IMPL srcList xmlFile_in)
|
||||
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)
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(CODEGEN_SERVER_TOPICS srcList xmlFile_in)
|
||||
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 "DTS" "FTS")
|
||||
ENDIF()
|
||||
SET(in_files "")
|
||||
SET(out_files "")
|
||||
FOREACH(part ${_CST_PARTS})
|
||||
IF(part STREQUAL "DTS")
|
||||
LIST(APPEND in_files
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dts.h.grantlee"
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dts_impl.h.grantlee"
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dts_impl.cpp.grantlee"
|
||||
)
|
||||
LIST(APPEND out_files
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dts.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dts_impl.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dts_impl.cpp"
|
||||
)
|
||||
ELSEIF(part STREQUAL "FTS")
|
||||
LIST(APPEND in_files
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_fts.h.grantlee"
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_fts_impl.h.grantlee"
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_fts_impl.cpp.grantlee"
|
||||
)
|
||||
LIST(APPEND out_files
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_fts.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_fts_impl.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_fts_impl.cpp"
|
||||
)
|
||||
IF(NOT POLICY CMP0071)
|
||||
QT6_WRAP_CPP(${srcList} ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_fts_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_TOPIC_TYPE_PLUGIN srcList xmlFile_in)
|
||||
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
||||
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_topic_type_plugin.cpp.grantlee"
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_topic_type_plugin.h.grantlee"
|
||||
)
|
||||
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_topic_type_plugin.cpp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_topic_type_plugin.h"
|
||||
)
|
||||
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
|
||||
IF(NOT POLICY CMP0071)
|
||||
QT6_WRAP_CPP(${srcList} ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_topic_type_plugin.h)
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(CREATE_TOPIC_TYPE_PLUGIN xmlFile_in)
|
||||
SET(_my_srcs "")
|
||||
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
||||
CODEGEN_TOPIC_TYPE_PLUGIN(_my_srcs ${xmlFile_in})
|
||||
|
||||
STRING(SUBSTRING ${svcNameOut} 0 1 _ss1)
|
||||
STRING(SUBSTRING ${svcNameOut} 1 -1 _ss2)
|
||||
STRING(TOUPPER ${_ss1} _ss1)
|
||||
SET(_commonLib "svc${_ss1}${_ss2}Common")
|
||||
|
||||
IF(svcNameOut STREQUAL "core")
|
||||
SET(_commonLib ddscore)
|
||||
ENDIF()
|
||||
|
||||
NGL_ADD_LIBRARY(WS AAR SV NO_TRANSLATION ${svcNameOut}TopicTypePlugin MODULE
|
||||
${_my_srcs}
|
||||
)
|
||||
NGL_TARGET_LINK_LIBRARIES(${svcNameOut}TopicTypePlugin
|
||||
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)
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
|
||||
|
||||
MACRO(CODEGEN_RECORD_REPLAY_PLUGIN srcList xmlFile_in)
|
||||
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
||||
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_record_replay_plugin.cpp.grantlee"
|
||||
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_record_replay_plugin.h.grantlee"
|
||||
)
|
||||
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_record_replay_plugin.cpp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_record_replay_plugin.h"
|
||||
)
|
||||
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
|
||||
IF(NOT POLICY CMP0071)
|
||||
QT6_WRAP_CPP(${srcList} ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_record_replay_plugin.h)
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(CREATE_RECORD_REPLAY_PLUGIN_INTERN xmlFile_in svcSourceList libtype)
|
||||
SET(_my_srcs "")
|
||||
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
|
||||
CODEGEN_RECORD_REPLAY_PLUGIN(_my_srcs ${xmlFile_in})
|
||||
|
||||
STRING(SUBSTRING ${svcNameOut} 0 1 _ss1)
|
||||
STRING(SUBSTRING ${svcNameOut} 1 -1 _ss2)
|
||||
STRING(TOUPPER ${_ss1} _ss1)
|
||||
SET(_commonLib "svc${_ss1}${_ss2}Common")
|
||||
|
||||
IF(svcNameOut STREQUAL "core")
|
||||
SET(_commonLib ddscore)
|
||||
ENDIF()
|
||||
|
||||
LIST(APPEND ${svcSourceList} ${_my_srcs})
|
||||
|
||||
NGL_ADD_LIBRARY(SV AAR WS ${svcNameOut}RecordReplayPlugin ${libtype}
|
||||
${_my_srcs}
|
||||
)
|
||||
NGL_TARGET_LINK_LIBRARIES(${svcNameOut}RecordReplayPlugin
|
||||
RecordReplayPlugin
|
||||
ddscore
|
||||
ddsconnector
|
||||
ddsdtc
|
||||
ngldb
|
||||
LtsUtilsCore
|
||||
${_commonLib}
|
||||
)
|
||||
NGL_INSTALL_TARGET(${svcNameOut}RecordReplayPlugin)
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(${svcNameOut}RecordReplayPlugin
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
${CMAKE_CURRENT_BINARY_DIR}/../
|
||||
)
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(CREATE_RECORD_REPLAY_PLUGIN xmlFile_in svcSourceList)
|
||||
CREATE_RECORD_REPLAY_PLUGIN_INTERN(${xmlFile_in} ${svcSourceList} MODULE)
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(CREATE_RECORD_REPLAY_PLUGIN_SHARED xmlFile_in)
|
||||
CREATE_RECORD_REPLAY_PLUGIN_INTERN(${xmlFile_in} _unused SHARED)
|
||||
ENDMACRO()
|
||||
|
||||
MACRO(CODEGEN_WRITE_SERVICEFILE_INFO)
|
||||
GET_PROPERTY(idl_files GLOBAL PROPERTY CODEGEN_IDL_FILES)
|
||||
LIST(REMOVE_DUPLICATES idl_files)
|
||||
FILE(WRITE ${CMAKE_BINARY_DIR}/service_idl_files.txt "-- all available service idl files\n")
|
||||
FOREACH(idl_file ${idl_files})
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}/service_idl_files.txt "${idl_file}\n")
|
||||
ENDFOREACH()
|
||||
ENDMACRO()
|
||||
@@ -1,77 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
MACRO(RTIDDSGEN srcList infile)
|
||||
# RTI (DDS) code generation is optional during migration; if RTI is not found, skip code generation.
|
||||
FIND_PACKAGE(RTI)
|
||||
if (NOT RTI_FOUND)
|
||||
message(STATUS "RTI not found; skipping RTI IDL code generation for ${infile}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
SET(input ${infile})
|
||||
IF(NOT IS_ABSOLUTE ${input})
|
||||
SET(input "${CMAKE_CURRENT_BINARY_DIR}/${input}")
|
||||
ENDIF()
|
||||
GET_FILENAME_COMPONENT(output ${infile} NAME_WE)
|
||||
GET_FILENAME_COMPONENT(input ${input} ABSOLUTE)
|
||||
|
||||
|
||||
|
||||
|
||||
SET(_ddsgen_args "")
|
||||
SET(output_cxx
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${output}.cxx
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${output}Plugin.cxx
|
||||
)
|
||||
|
||||
SET(output_hpp
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${output}.hpp
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${output}Plugin.hpp
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
ADD_CUSTOM_COMMAND(OUTPUT ${output_cxx} ${output_hpp}
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
ARGS -E remove ${output_cxx}
|
||||
COMMAND ${RTI_DDSGEN_EXECUTABLE}
|
||||
ARGS -language "C++11"
|
||||
ARGS -unboundedSupport
|
||||
ARGS -verbosity 2
|
||||
ARGS -update typefiles
|
||||
ARGS -stl
|
||||
ARGS -d ${CMAKE_CURRENT_BINARY_DIR}
|
||||
ARGS -inputIdl ${input}
|
||||
ARGS -I ${CMAKE_CURRENT_BINARY_DIR}
|
||||
ARGS -I ${CMAKE_CURRENT_BINARY_DIR}/../
|
||||
ARGS -I ${CMAKE_CURRENT_BINARY_DIR}/../../
|
||||
ARGS -I ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
ARGS -I ${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
ARGS -I ${CMAKE_CURRENT_SOURCE_DIR}/../../
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
DEPENDS ${input} ${ARGN}
|
||||
)
|
||||
|
||||
IF(WIN32)
|
||||
SET_SOURCE_FILES_PROPERTIES(${output_cxx} PROPERTIES COMPILE_FLAGS "-DNDDS_USER_DLL_EXPORT")
|
||||
ELSE()
|
||||
SET_SOURCE_FILES_PROPERTIES(${output_cxx} PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE)
|
||||
ENDIF()
|
||||
LIST(APPEND ${srcList} ${output_cxx} ${output_hpp})
|
||||
|
||||
|
||||
ENDMACRO()
|
||||
@@ -1,30 +0,0 @@
|
||||
# Placeholder internal targets to allow partial configure during migration
|
||||
# Creates IMPORTED targets for internal DDS generator targets that are not
|
||||
# yet available in the repository. These placeholders allow CMake checks
|
||||
# like "if(TARGET ddsgen)" to behave consistently and let subdirs add
|
||||
# tests during migration. They should be removed/replaced when real
|
||||
# targets are added during module migration.
|
||||
|
||||
if(NOT TARGET ddsgen)
|
||||
add_library(ddsgen UNKNOWN IMPORTED)
|
||||
# Qt6 Migration: Removed INTERFACE_POSITION_INDEPENDENT_CODE - conflicts with Qt6 reduce_relocations
|
||||
# set_target_properties(ddsgen PROPERTIES INTERFACE_POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
|
||||
if(NOT TARGET ddsdtc)
|
||||
add_library(ddsdtc UNKNOWN IMPORTED)
|
||||
# Qt6 Migration: Removed INTERFACE_POSITION_INDEPENDENT_CODE - conflicts with Qt6 reduce_relocations
|
||||
# set_target_properties(ddsdtc PROPERTIES INTERFACE_POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
|
||||
if(NOT TARGET ddsfts)
|
||||
add_library(ddsfts UNKNOWN IMPORTED)
|
||||
# Qt6 Migration: Removed INTERFACE_POSITION_INDEPENDENT_CODE - conflicts with Qt6 reduce_relocations
|
||||
# set_target_properties(ddsfts PROPERTIES INTERFACE_POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
|
||||
if(NOT TARGET ddsQoS)
|
||||
add_library(ddsQoS UNKNOWN IMPORTED)
|
||||
# Qt6 Migration: Removed INTERFACE_POSITION_INDEPENDENT_CODE - conflicts with Qt6 reduce_relocations
|
||||
# set_target_properties(ddsQoS PROPERTIES INTERFACE_POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
Reference in new issue
Block a user