Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/DDS/DdsUnitTests/CMakeLists.txt
T

183 lines
5.1 KiB
CMake
Executable File

#
# $Id$
# $HeadURL$
# $Author$
#
# Check for required targets - use simpler condition for INTERFACE library compatibility
IF(BUILD_TESTING AND BUILD_RTI)
# Verify required targets exist
SET(_required_targets ddsgen ddsdtc ddsfts ddsQoS)
SET(_targets_found TRUE)
FOREACH(_tgt ${_required_targets})
IF(NOT TARGET ${_tgt})
SET(_targets_found FALSE)
MESSAGE(WARNING "Required target ${_tgt} not found - DDS unit tests will not be built")
ENDIF()
ENDFOREACH()
IF(_targets_found)
SET(xml_FILE ddsut.xml)
SET(SRCS_common
ddsut_export.h
)
# Generates ddsut.idl / ddsut_enums.idl
IF(BUILD_GRANTLEE)
CODEGEN_IDL_SVC(SRCS_common ${xml_FILE})
ELSE()
# BUILD_GRANTLEE disabled: check for pre-generated files
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ddsut.idl" AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ddsut_enums.idl")
MESSAGE(STATUS "BUILD_GRANTLEE disabled: using pre-generated IDL files for ddsut")
LIST(APPEND SRCS_common ddsut.idl ddsut_enums.idl)
ELSE()
MESSAGE(WARNING "BUILD_GRANTLEE disabled but no pre-generated IDL files found for ddsut. Skipping service.")
SET(SRCS_common "")
ENDIF()
ENDIF()
# Generate *.cpp/*.hpp from ddsut_enums.idl / ddsut.idl
IF(BUILD_GRANTLEE OR (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ddsut.idl" AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ddsut_enums.idl"))
RTIDDSGEN(SRCS_common ddsut_enums.idl)
RTIDDSGEN(SRCS_common ddsut.idl)
ENDIF()
# Generate ddsut_dt[s,c]_types.h, ddsut_ft[s,c]_types.h
CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE})
# generate ddsut_[d|f]tc.h
IF(BUILD_GRANTLEE)
CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE})
ELSE()
# Check for pre-generated files
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ddsut_dtc.h" AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/ddsut_ftc.h")
MESSAGE(STATUS "BUILD_GRANTLEE disabled: using pre-generated DTC/FTC files for ddsut")
LIST(APPEND SRCS_common ddsut_dtc.h ddsut_ftc.h)
ELSE()
MESSAGE(WARNING "BUILD_GRANTLEE disabled but no pre-generated DTC/FTC files found for ddsut")
ENDIF()
ENDIF()
NGL_ADD_LIBRARY2(ALL ddsut_common SHARED ${SRCS_common})
IF(BUILD_RTI)
NGL_TARGET_LINK_LIBRARIES(ddsut_common
PRIVATE
NGLLogger
PUBLIC
LtsUtilsCoreHeaderOnly
Qt6::Core
RTI::nddsc
RTI::nddscore
RTI::nddscpp2
ddscore
)
ENDIF(BUILD_RTI)
NGL_TARGET_INCLUDE_DIRECTORIES(ddsut_common
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../
${CMAKE_CURRENT_BINARY_DIR}/../
)
# -----------------------------------------------------------------------------------
# Testing DataWriter/DataReader without DTS/DTC
# -----------------------------------------------------------------------------------
SET(SRCS_TEST1
generic_data_tests.cpp
generic_data_tests.h
initialisation.cpp
initialisation.h
)
# -----------------------------------------------------------------------------------
# Testing DataTopic Functionality (DTS/DTC)
# -----------------------------------------------------------------------------------
SET(SRCS_TEST2
data_topic_tests_main.cpp
data_topic_tests_main.h
data_topic_tests.cpp
data_topic_tests.h
)
# -----------------------------------------------------------------------------------
# Testing FunctionTopic Functionality (FTS/FTC)
# -----------------------------------------------------------------------------------
SET(SRCS_TEST3
function_topic_tests.cpp
function_topic_tests.h
)
# Testing DataWriter/DataReader without DTS/DTC
ADD_EXECUTABLE(ddsGenericDataTests ${SRCS_TEST1})
TARGET_LINK_LIBRARIES(ddsGenericDataTests
ddsgen
ddsdtc
ddsQoS
nglcoreapplication
NGLLogger
ProjectConfig
Qt6::Core
Qt6::Test
ddsut_common
)
TARGET_INCLUDE_DIRECTORIES(ddsGenericDataTests PRIVATE
${CMAKE_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/Lts/DDS
)
ADD_TEST(NAME ddsGenericDataTests COMMAND $<TARGET_FILE:ddsGenericDataTests>)
# Testing DataTopic Functionality (DTS/DTC)
ADD_EXECUTABLE(ddsDataTopicTests ${SRCS_TEST2})
TARGET_LINK_LIBRARIES(ddsDataTopicTests
nglcoreapplication
NGLLogger
RTI::nddscpp2
ddsgen
ddsdts
ddsdtc
ddsQoS
ProjectConfig
Qt6::Core
Qt6::Test
ddsut_common
)
TARGET_INCLUDE_DIRECTORIES(ddsDataTopicTests PRIVATE
${CMAKE_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/Lts
${CMAKE_SOURCE_DIR}/Lts/DDS
)
ADD_TEST(NAME ddsDataTopicTests COMMAND $<TARGET_FILE:ddsDataTopicTests>)
# Testing FunctionTopic Functionality (FTS/FTC)
ADD_EXECUTABLE(ddsFunctionTopicTests ${SRCS_TEST3})
TARGET_LINK_LIBRARIES(ddsFunctionTopicTests
ddsgen
ddsfts
ddsftc
ddsQoS
ddsconnector
nglcoreapplication
NGLLogger
ngltools
Qt6::Core
Qt6::Test
ddsut_common
)
TARGET_INCLUDE_DIRECTORIES(ddsFunctionTopicTests PRIVATE
${CMAKE_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/Lts
${CMAKE_SOURCE_DIR}/Lts/DDS
)
ADD_TEST(NAME ddsFunctionTopicTests COMMAND $<TARGET_FILE:ddsFunctionTopicTests>)
ENDIF() # _targets_found
IF(NOT BUILD_RPM)
NGL_INSTALL(AAR SV TARGETS ddsut_common DESTINATION bin/test)
NGL_INSTALL(AAR SV TARGETS ddsGenericDataTests DESTINATION bin/test)
NGL_INSTALL(AAR SV TARGETS ddsDataTopicTests DESTINATION bin/test)
NGL_INSTALL(AAR SV TARGETS ddsFunctionTopicTests DESTINATION bin/test)
NGL_INSTALL(AAR SV FILES log4cxx_ddsUnitTests.props DESTINATION bin/test)
ENDIF()
ENDIF()