183 lines
5.1 KiB
CMake
Executable File
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()
|
|
|