# # $Id$ # $HeadURL$ # $Author$ # Created by Mike Wille, SLSE, 2016-05-15 # # RTI Connext DDS - uses IMPORTED targets from parent CMakeLists.txt OPTION(BUILD_RTI "Build with RTI Connext DDS support" ON) # Find RTI Connext DDS - manual configuration (no CMake config file available) IF(BUILD_RTI) SET(RTI_BASE_DIR "${CMAKE_SOURCE_DIR}/../../../external/rti_connext_dds-7.7.0") SET(RTI_INCLUDE_DIR "${RTI_BASE_DIR}/include") SET(RTI_LIB_DIR "${RTI_BASE_DIR}/lib/x64Linux4gcc8.5.0") # Check if RTI directories exist IF(EXISTS "${RTI_INCLUDE_DIR}" AND EXISTS "${RTI_LIB_DIR}") MESSAGE(STATUS "Using RTI Connext DDS from ${RTI_BASE_DIR}") SET(BUILD_RTI ON) ELSE() MESSAGE(WARNING "RTI Connext DDS not found at ${RTI_BASE_DIR}, building without RTI support") SET(BUILD_RTI OFF) ENDIF() ENDIF() # LtsSessionDataDds (always built, with stub implementation for non-RTI builds) SET(LtsSessionDataDds_SRCS lts_session_data_dds.cpp lts_session_data_dds.h ) NGL_ADD_LIBRARY2(WS LtsSessionDataDds SHARED ${LtsSessionDataDds_SRCS}) set_target_properties(LtsSessionDataDds PROPERTIES AUTOMOC ON) NGL_TARGET_INCLUDE_DIRECTORIES(LtsSessionDataDds PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) NGL_TARGET_LINK_LIBRARIES(LtsSessionDataDds PRIVATE $<$:ddsconnector> PUBLIC $<$:nddscore> NGLLogger Qt6::Core ) IF(BUILD_RTI) NGL_TARGET_INCLUDE_DIRECTORIES(LtsSessionDataDds PUBLIC ${RTI_INCLUDE_DIR} ) NGL_TARGET_LINK_DIRECTORIES(LtsSessionDataDds PRIVATE ${RTI_LIB_DIR} ) ENDIF() IF(BUILD_RTI) TARGET_COMPILE_DEFINITIONS(LtsSessionDataDds PUBLIC BUILD_RTI) ENDIF() # LtsSession (RTI dependencies optional) SET(ltssession_SRCS lts_session.h lts_session.cpp lts_session_lock_handler.h lts_session_manager.h lts_session_manager.cpp lts_session_lock_handler.cpp ) NGL_ADD_LIBRARY2(WS LtsSession SHARED ${ltssession_SRCS}) NGL_TARGET_INCLUDE_DIRECTORIES(LtsSession PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../ ${CMAKE_CURRENT_BINARY_DIR}/../ ${CMAKE_CURRENT_SOURCE_DIR}/../LtsUtils/LtsUtilsGui ) # Optional external dependencies FIND_LIBRARY(SVCCORECLIENT_LIBRARY NAMES svcCoreClient PATHS /usr/local/lib /usr/lib NO_DEFAULT_PATH) FIND_LIBRARY(OHPONLINEHELP_LIBRARY NAMES OhpOnlineHelpViewerGuiPluginInterface PATHS /usr/local/lib /usr/lib NO_DEFAULT_PATH) SET(LtsSession_PRIVATE_LIBS Qt6::Network LtsMultiMonitor LtsSessionData LtsUtilsGuiDds # ReqHelpr & for Debug Menu ! TODO: rm on release! LtsNotification Qt6::Svg ) IF(SVCCORECLIENT_LIBRARY) LIST(APPEND LtsSession_PRIVATE_LIBS ${SVCCORECLIENT_LIBRARY}) ENDIF() IF(OHPONLINEHELP_LIBRARY) LIST(APPEND LtsSession_PRIVATE_LIBS ${OHPONLINEHELP_LIBRARY}) ENDIF() NGL_TARGET_LINK_LIBRARIES(LtsSession PRIVATE ${LtsSession_PRIVATE_LIBS} PUBLIC LtsWidgets Qt6::Core GuiPluginInterface DataPluginInterface NGLLogger ProjectConfig LtsSessionDataDds # Always link, even in stub mode ) IF(BUILD_RTI) NGL_TARGET_LINK_LIBRARIES(LtsSession PRIVATE ddsconnector PUBLIC nddscore ) TARGET_COMPILE_DEFINITIONS(LtsSession PUBLIC BUILD_RTI) ENDIF() # LtsSessionData (avoid cross-deps between AppManager, Session and PluginManager) SET(LtsSessionData_SRCS lts_session_data.cpp lts_session_data.h ) NGL_ADD_LIBRARY2(WS TOOLSSV TOOLSWS LtsSessionData SHARED ${LtsSessionData_SRCS}) NGL_TARGET_INCLUDE_DIRECTORIES(LtsSessionData PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../ ) NGL_TARGET_LINK_LIBRARIES(LtsSessionData PUBLIC Qt6::Core Qt6::Gui # QPixmap as Storage for Profile Picture ) IF(BUILD_RTI) NGL_TARGET_LINK_LIBRARIES(LtsSessionData PUBLIC RTI::nddscore ) TARGET_COMPILE_DEFINITIONS(LtsSessionData PUBLIC BUILD_RTI) ENDIF()