- TrainingAreaBase provides tabTelegrams library needed by TetraIF/CoPrtCnv - Only TrainingAreaBase subdirectory is included, not other Proxies - DDS-dependent components (svcTabCommon, svcTabClient, svcTabServer, executable) remain excluded via RELEASE_BUILD conditionals Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
79 lines
3.1 KiB
CMake
79 lines
3.1 KiB
CMake
#
|
|
# $Id$
|
|
# $HeadURL$
|
|
# $Author$
|
|
#
|
|
|
|
cmake_minimum_required(VERSION 3.16)
|
|
project(LtsPlaceholder)
|
|
SET(DOXYGEN_OUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/doxygen_Lts)
|
|
if (EXISTS "${CMAKE_SOURCE_DIR}/doxygen/DoxyfileLts.in")
|
|
ADD_DOXYGEN_TARGET(Lts ${CMAKE_SOURCE_DIR}/doxygen/DoxyfileLts.in ${CMAKE_BINARY_DIR}/DoxyfileLts
|
|
${CMAKE_SOURCE_DIR}/doxygen/rheinmetall_defence_logo.jpg
|
|
${DOXYGEN_OUT_DIR})
|
|
else()
|
|
message(WARNING "Doxygen config ${CMAKE_SOURCE_DIR}/doxygen/DoxyfileLts.in not found; skipping ADD_DOXYGEN_TARGET(Lts)")
|
|
endif()
|
|
|
|
# Add only existing subdirectories to allow partial checkouts / incremental migration
|
|
if(RELEASE_BUILD)
|
|
# For first release: only build Lts/Common and Lts/Proxies/TrainingAreaBase (tabTelegrams library)
|
|
# Excludes: Tools, Application, DDS, Services, most of Proxies, Plugins, Viewer, Projects
|
|
message(STATUS "RELEASE_BUILD=ON: Building Lts/Common and Lts/Proxies/TrainingAreaBase")
|
|
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Common")
|
|
NGL_ADD_SUBDIR_GUARDED(Common)
|
|
else()
|
|
message(STATUS "Skipping missing Lts subdirectory: Common")
|
|
endif()
|
|
# TrainingAreaBase provides tabTelegrams library needed by TetraIF/CoPrtCnv
|
|
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Proxies/TrainingAreaBase")
|
|
NGL_ADD_SUBDIR_GUARDED(Proxies/TrainingAreaBase)
|
|
else()
|
|
message(STATUS "Skipping missing Lts subdirectory: Proxies/TrainingAreaBase")
|
|
endif()
|
|
else()
|
|
set(LTS_SUBDIRS Tools Application DDS Common Services Proxies Plugins Viewer Projects)
|
|
foreach(dir IN LISTS LTS_SUBDIRS)
|
|
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${dir}")
|
|
# Use guarded add so top-level MIGRATE_MODULE can restrict which Lts subdirs are included
|
|
NGL_ADD_SUBDIR_GUARDED(${dir})
|
|
else()
|
|
message(STATUS "Skipping missing Lts subdirectory: ${dir}")
|
|
endif()
|
|
|
|
endforeach()
|
|
endif()
|
|
|
|
IF (BUILD_TESTING)
|
|
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Tests")
|
|
ADD_SUBDIRECTORY(Tests)
|
|
else()
|
|
message(STATUS "Skipping missing Tests directory under Lts (BUILD_TESTING is ON)")
|
|
endif()
|
|
ENDIF()
|
|
|
|
OPTION(BUILD_DOCS "Build documentation as html files from Lts/Documentation" OFF)
|
|
IF (BUILD_DOCS)
|
|
ADD_SUBDIRECTORY(Documentation)
|
|
ENDIF()
|
|
|
|
# Ensure codegen macros are available before calling CODEGEN_* helpers
|
|
# Skip for release builds as CodeGen module is excluded and not needed
|
|
IF(NOT RELEASE_BUILD)
|
|
INCLUDE(MacroCodeGenIdl)
|
|
ENDIF()
|
|
|
|
# Add stub headers for non-RTI/non-FilterManagement builds
|
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include/AudioVideoManagement/)
|
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include/NGLLogger/)
|
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include/LtsSession/)
|
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include/TopicEditorBase/)
|
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include/OperatorManagement/)
|
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include/LtsScriptTimeline/)
|
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include/LtsUtilsGuiDds/)
|
|
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include/Services/PresentationManagement/)
|
|
|
|
IF(NOT RELEASE_BUILD)
|
|
CODEGEN_WRITE_SERVICEFILE_INFO()
|
|
ENDIF()
|