# # $Id$ # $HeadURL$ # $Author$ # INCLUDE(MacroRTIDDSGen) INCLUDE(MacroCodeGenIdl) SET(xml_FILE nom_service.xml) # # --- Library svcNomCommon -------------------------------------------------------------------------------- # SET(SRCS_common nom_export.h logger.cpp logger.h ) # Generate nom_enums.idl / nom.idl IF(BUILD_RTI) CODEGEN_IDL_SVC(SRCS_common ${xml_FILE}) ENDIF() # The enums stub copy below would overwrite the rtiddsgen-generated # _enums.hpp (RTIDDSGEN on _enums.idl writes the same build-dir # path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF. IF(NOT BUILD_RTI) # Stub file for compilation (fallback when no IDL exists) CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/include/NotificationManagement/nom_enums.hpp.stub ${CMAKE_BINARY_DIR}/Lts/Services/NotificationManagement/nom_enums.hpp COPYONLY ) ENDIF() # Generate nom_db_impl.cpp/.h, nom_db.h IF(BUILD_RTI) CODEGEN_DATABASE(SRCS_common ${xml_FILE}) ENDIF() # The enums stub copy below would overwrite the rtiddsgen-generated # _enums.hpp (RTIDDSGEN on _enums.idl writes the same build-dir # path) on every cmake re-configure. Only keep it for BUILD_RTI=OFF. IF(NOT BUILD_RTI) # Copy nom_enums.hpp.stub to build directory for compilation CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/include/NotificationManagement/nom_enums.hpp.stub ${CMAKE_BINARY_DIR}/Lts/Services/NotificationManagement/nom_enums.hpp COPYONLY ) ENDIF() # Generate *.cpp/*.hpp from idl RTIDDSGEN(SRCS_common nom_enums.idl) RTIDDSGEN(SRCS_common nom.idl) # Generate nom_dt[s,c]_types.h, nom_ft[s,c]_types.h IF(BUILD_RTI) CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE}) ENDIF() # generate nom_[d|f]tc.h IF(BUILD_RTI) CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE}) ENDIF() NGL_ADD_LIBRARY(AAR SV WS svcNomCommon SHARED ${SRCS_common}) NGL_TARGET_INCLUDE_DIRECTORIES(svcNomCommon PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../ ${CMAKE_CURRENT_BINARY_DIR}/../ ) NGL_TARGET_LINK_LIBRARIES(svcNomCommon PRIVATE RTI::nddscpp2 PUBLIC Qt6::Core $,ddscore,> ngldb LtsCommandLineParser NGLLogger ) NGL_INSTALL_TARGET(svcNomCommon) # # --- Library svcNomClient -------------------------------------------------------------------------------- # SET(SRCS_client nom_export.h ) # generate nom_[d|f]tc_impl.[cpp|h] IF(BUILD_RTI) CODEGEN_CLIENT_TOPICS_IMPL(SRCS_client ${xml_FILE}) ENDIF() NGL_ADD_LIBRARY(AAR SV WS svcNomClient SHARED ${SRCS_client}) NGL_TARGET_INCLUDE_DIRECTORIES(svcNomClient PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../ ${CMAKE_CURRENT_BINARY_DIR}/../ ) NGL_TARGET_LINK_LIBRARIES(svcNomClient PRIVATE RTI::nddscpp2 $,ddsconnector,> PUBLIC svcNomCommon ddsftc ) NGL_INSTALL_TARGET(svcNomClient) # # --- Library svcNomServer -------------------------------------------------------------------------------- # SET(SRCS_server nom_export.h ) # generate nom_[d|f]ts.h, nom_[d|f]ts_impl.[cpp|h] IF(BUILD_RTI) CODEGEN_SERVER_TOPICS(SRCS_server ${xml_FILE}) ENDIF() NGL_ADD_LIBRARY(AAR SV svcNomServer SHARED ${SRCS_server}) NGL_TARGET_INCLUDE_DIRECTORIES(svcNomServer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../ ${CMAKE_CURRENT_BINARY_DIR}/../ ) NGL_TARGET_LINK_LIBRARIES(svcNomServer PRIVATE RTI::nddscpp2 $,ddsconnector,> ddsfts PUBLIC svcNomCommon ngldb ) NGL_INSTALL_TARGET(svcNomServer) # # --- Topic Type Plugin -------------------------------------------------------------- # IF(BUILD_RTI) CREATE_TOPIC_TYPE_PLUGIN(${xml_FILE}) ENDIF() # # --- Executable svcNotificationManagement (sNOM) ------------------------------------------------- # SET(SRCS_exe handler_notification.cpp handler_notification.h main.cpp main_handler.cpp main_handler.h object_notification.cpp object_notification.h settings.cpp settings.h dds_handler.cpp dds_handler.h log4cxx_nom.props ${xml_FILE} ) # Generate nom.sql, nom.xml IF(BUILD_RTI) CODEGEN_SQL(SRCS_exe ${xml_FILE}) ENDIF() NGL_ADD_SVC_ICON(SRCS_exe) NGL_ADD_EXECUTABLE(AAR SV svcNotificationManagement ${SRCS_exe}) NGL_TARGET_LINK_LIBRARIES(svcNotificationManagement Qt6::Core svcNomCommon svcNomServer svcExmClient svcOpmClient svcCoreClient $,ddsconnector,> nglsettings ProjectConfig NGLLogger nglcoreapplication ngltools ) NGL_INSTALL_TARGET(svcNotificationManagement) NGL_INSTALL(AAR SV FILES log4cxx_nom.props DESTINATION bin) NGL_ADD_TARGET_LINK(svcNotificationManagement sNOM) # Uncomment if necessary #ADD_SUBDIRECTORY(UnitTests) ADD_SUBDIRECTORY(ModuleTests)