# # $Id$ # $HeadURL$ # $Author$ # INCLUDE(MacroRTIDDSGen) INCLUDE(MacroCodeGenIdl) SET(xml_FILE exm_service.xml) # # --- Library svcExmCommon -------------------------------------------------------------------------------- # SET(SRCS_common exm_export.h logger.cpp logger.h ) # Generate exm_enums.idl / exm.idl CODEGEN_IDL_SVC(SRCS_common ${xml_FILE}) # Generate exm_db_impl.cpp/.h, exm_db.h CODEGEN_DATABASE(SRCS_common ${xml_FILE}) # Generate *.cpp/*.hpp from idl RTIDDSGEN(SRCS_common exm_enums.idl) RTIDDSGEN(SRCS_common exm.idl) # Generate exm_dt[s,c]_types.h, exm_ft[s,c]_types.h CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE}) # generate exm_[d|f]tc.h CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE}) NGL_ADD_LIBRARY(AAR SV WS HLA svcExmCommon SHARED ${SRCS_common}) NGL_TARGET_INCLUDE_DIRECTORIES(svcExmCommon PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../ ${CMAKE_CURRENT_BINARY_DIR}/../ ) NGL_TARGET_LINK_LIBRARIES(svcExmCommon PRIVATE RTI::nddscpp2 PUBLIC Qt5::Core ddscore NGLLogger ngldb LtsUtilsCore ) NGL_INSTALL_TARGET(svcExmCommon) # # --- Library svcExmClient -------------------------------------------------------------------------------- # SET(SRCS_client exm_export.h ) # generate exm_ftc_impl.[cpp|h] CODEGEN_CLIENT_TOPICS_IMPL(SRCS_client ${xml_FILE}) NGL_ADD_LIBRARY(AAR SV WS HLA svcExmClient SHARED ${SRCS_client}) NGL_TARGET_INCLUDE_DIRECTORIES(svcExmClient PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../ ${CMAKE_CURRENT_BINARY_DIR}/../ ) NGL_TARGET_LINK_LIBRARIES(svcExmClient PRIVATE RTI::nddscpp2 ddsconnector PUBLIC svcExmCommon ddsftc ) NGL_INSTALL_TARGET(svcExmClient) # # --- Library svcExmServer -------------------------------------------------------------------------------- # SET(SRCS_server exm_export.h convert_db_to_dds.h ) # generate exm_[d|f]ts.h, exm_[d|f]ts_impl.[cpp|h] CODEGEN_SERVER_TOPICS(SRCS_server ${xml_FILE}) NGL_ADD_LIBRARY(WS AAR SV svcExmServer SHARED ${SRCS_server}) NGL_TARGET_INCLUDE_DIRECTORIES(svcExmServer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../ ${CMAKE_CURRENT_BINARY_DIR}/../ ) NGL_TARGET_LINK_LIBRARIES(svcExmServer PRIVATE RTI::nddscpp2 ddsconnector ddsfts LtsUtilsCore PUBLIC svcExmCommon ngldb ) NGL_INSTALL_TARGET(svcExmServer) # # --- Topic Type Plugin -------------------------------------------------------------- # CREATE_TOPIC_TYPE_PLUGIN(${xml_FILE}) # # --- Executable svcExerciseManagement (sEXM) -------------------------------------------------------------- # SET(SRCS_exe dds_handler.cpp dds_handler.h exercise_state_base.cpp exercise_state_base.h exercise_state_machine.cpp exercise_state_machine.h exercise_state_manager.cpp exercise_state_manager.h handler_exercise.cpp handler_exercise.h handler_exercise_phase.cpp handler_exercise_phase.h # handler_service_tables_create.cpp # handler_service_tables_create.h main.cpp main_handler.cpp main_handler.h object_exercise.cpp object_exercise.h object_exercise_phase.cpp object_exercise_phase.h settings.cpp settings.h WebSocketInterface/data_manager.cpp WebSocketInterface/data_manager.h WebSocketInterface/json_keys.h WebSocketInterface/websocket_interface_handler.cpp WebSocketInterface/websocket_interface_handler.h WebSocketInterface/Messages/client_message.cpp WebSocketInterface/Messages/client_message.h WebSocketInterface/Messages/reply_message.cpp WebSocketInterface/Messages/reply_message.h log4cxx_exm.props ${xml_FILE} ) # Generate exm.sql, exs.xml CODEGEN_SQL(SRCS_exe ${CMAKE_CURRENT_SOURCE_DIR}/exm_service.xml) NGL_ADD_SVC_ICON(SRCS_exe) NGL_ADD_EXECUTABLE(AAR SV svcExerciseManagement ${SRCS_exe}) NGL_TARGET_LINK_LIBRARIES(svcExerciseManagement dbAdminCopyExercise ddsconnector LtsCommandLineParser LtsWebSocketServer nglcoreapplication NGLLogger nglsettings ngltools ProjectConfig Qt5::Core svcCoreClient svcExmCommon svcExmServer svcScmClient svcPpmClient svcAvmClient LtsUtilsDds ) NGL_INSTALL_TARGET(svcExerciseManagement) NGL_INSTALL(AAR SV FILES log4cxx_exm.props DESTINATION bin) NGL_ADD_TARGET_LINK(svcExerciseManagement sEXM) # Uncomment if necessary ADD_SUBDIRECTORY(UnitTests) ADD_SUBDIRECTORY(ModuleTests)