# # $Id$ # $HeadURL$ # $Author$ # Created by Mike Wille, SLSE, 2016-05-15 # # RTI Connext DDS - uses IMPORTED targets from parent CMakeLists.txt # Make ${Qt6_Gui} optional if(QT6_GUI_AVAILABLE AND TARGET Qt6::Gui) set(Qt6_Gui ${Qt6_Gui}) else() set(Qt6_Gui "") endif() # BUILD_RTI is set by parent CMakeLists.txt - do not override here # RTI paths are also set by parent and imported targets are available # 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 $<$:RTI::nddscore> $<$:ddsQoS> # Generated Core type support (topic_type_support, ...) $<$:$,ddscore,>> NGLLogger Qt6::Core ) IF(BUILD_RTI) NGL_TARGET_INCLUDE_DIRECTORIES(LtsSessionDataDds PUBLIC ${RTI_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/Lts ${CMAKE_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/Lts/DDS ) # ddscore target generates core_dtc_types.h ADD_DEPENDENCIES(LtsSessionDataDds ddscore) 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 # Prefer the in-tree target: a fresh build tree does not have svcCoreClient # installed in /usr/local/lib, and the Core::Interface::Ftc::create symbols # referenced at link time live in libsvcCoreClient.so IF(TARGET svcCoreClient) SET(SVCCORECLIENT_LIBRARY svcCoreClient) ELSE() FIND_LIBRARY(SVCCORECLIENT_LIBRARY NAMES svcCoreClient PATHS /usr/local/lib /usr/lib NO_DEFAULT_PATH) ENDIF() 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 RTI::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}/../ ) if(QT6_GUI_AVAILABLE) NGL_TARGET_LINK_LIBRARIES(LtsSessionData PUBLIC Qt6::Core Qt6::Gui # QPixmap as Storage for Profile Picture ) endif() IF(BUILD_RTI) NGL_TARGET_LINK_LIBRARIES(LtsSessionData PUBLIC RTI::nddscore ) TARGET_COMPILE_DEFINITIONS(LtsSessionData PUBLIC BUILD_RTI) ENDIF()