# # $Id$ # $HeadURL$ # $Author$ # IF(${CMAKE_VERSION} VERSION_LESS "3.6.0") FIND_PACKAGE(Boost REQUIRED COMPONENTS system) # system wird nicht gebraucht, aber ohne Komponente wird das Boost::boost imported Target nicht angelegt (cmake <= 3.5.2) ELSE() FIND_PACKAGE(Boost REQUIRED) ENDIF() INCLUDE(MacroRTIDDSGen) INCLUDE(MacroCodeGenIdl) SET(xml_FILE avm_service.xml) # # --- Library svcAvmCommon -------------------------------------------------------------------------------- # SET(SRCS_common avm_export.h logger.cpp logger.h av_socket.cpp av_socket.h ava_types.cpp ava_types.h av_helper.cpp av_helper.h avs_dialog.cpp avs_dialog.h iava_comm.h ava_comm.cpp ava_comm.h iava_command_done_observer.h list_response_collector.cpp list_response_collector.h ava_control.cpp ava_control.h ava_session.cpp ava_session.h ava_state.cpp ava_state.h rt_state.cpp rt_state.h avs_command_queue.cpp avs_command_queue.h exercise_context.cpp exercise_context.h asset_assignment_manager.h asset_assignment_manager.cpp exercise.h exercise.cpp asset.h asset.cpp mounting_point.h mounting_point.cpp audio_video_handler_impl.h audio_video_handler_impl.cpp ivd_comm.h vd_comm.cpp vd_comm.h ivd_command_done_observer.h vd_control.cpp vd_control.h vd_session.cpp vd_session.h icommand.h stream_name_mapping.h stream_name_mapping.cpp stream_name_mapping_to_ava.h stream_name_mapping_to_ava.cpp avs_menus.cpp avs_menus.h AvsCommands/simple_command.cpp AvsCommands/simple_command.h AvsCommands/choose_stream.cpp AvsCommands/choose_stream.h AvsCommands/choose_stream_overview.cpp AvsCommands/choose_stream_overview.h AvsCommands/get_stream_list.cpp AvsCommands/get_stream_list.h AvsCommands/query_timeline.cpp AvsCommands/query_timeline.h AvsCommands/get_eloka_list.cpp AvsCommands/get_eloka_list.h AvsCommands/query_eloka.cpp AvsCommands/query_eloka.h AvsCommands/set_rt_profile_base.cpp AvsCommands/set_rt_profile_base.h AvsCommands/set_rt_profile.cpp AvsCommands/set_rt_profile.h AvsCommands/change_rt_profile_circuit_name.cpp AvsCommands/change_rt_profile_circuit_name.h AvsCommands/set_announcement_profile.cpp AvsCommands/set_announcement_profile.h AvsCommands/set_video_profile.cpp AvsCommands/set_video_profile.h AvsCommands/set_script.cpp AvsCommands/set_script.h AvsCommands/start_script.cpp AvsCommands/start_script.h AvsCommands/set_abs_position.cpp AvsCommands/set_abs_position.h AvsCommands/set_volume.cpp AvsCommands/set_volume.h AvsCommands/keep_alive.cpp AvsCommands/keep_alive.h AvsCommands/vd_set_script.cpp AvsCommands/vd_set_script.h ) # due to template export stuff SET_SOURCE_FILES_PROPERTIES(list_response_collector.cpp PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE) # Generate avm_enums.idl / avm.idl CODEGEN_IDL_SVC(SRCS_common ${xml_FILE}) # Generate avm_db.h, avm_db_impl.cpp/.h CODEGEN_DATABASE_SQL(SRCS_common ${xml_FILE}) # Generate *.cpp/*.hpp from idl RTIDDSGEN(SRCS_common avm_enums.idl) RTIDDSGEN(SRCS_common avm.idl) # Generate avm_dt[s,c]_types.h, avm_ft[s,c]_types.h CODEGEN_TOPIC_TYPEDEFS(SRCS_common ${xml_FILE}) # generate avm_[d|f]tc.h CODEGEN_CLIENT_TOPICS_IFC(SRCS_common ${xml_FILE}) # Generate avm_db_structs.cpp/.h CODEGEN_DATABASE_STRUCTS(SRCS_common ${xml_FILE}) NGL_ADD_LIBRARY(AAR SV WS svcAvmCommon SHARED ${SRCS_common}) NGL_TARGET_INCLUDE_DIRECTORIES(svcAvmCommon PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../ ${CMAKE_CURRENT_BINARY_DIR}/../ ) NGL_TARGET_LINK_LIBRARIES(svcAvmCommon PRIVATE RTI::nddscpp2 ngltools PUBLIC Qt5::Core Qt5::Network NGLLogger LtsUtilsCore svcIsmClient ddscore ngldb Boost::boost ) NGL_INSTALL_TARGET(svcAvmCommon) # # --- Library svcAvmClient -------------------------------------------------------------------------------- # SET(SRCS_client avm_export.h avm_dtc_impl_custom.h avm_dtc_impl_custom.cpp ) # generate avm_[d|f]tc_impl.[cpp|h] CODEGEN_CLIENT_TOPICS_IMPL(SRCS_client ${xml_FILE}) NGL_ADD_LIBRARY(AAR SV WS svcAvmClient SHARED ${SRCS_client}) NGL_TARGET_INCLUDE_DIRECTORIES(svcAvmClient PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../ ${CMAKE_CURRENT_BINARY_DIR}/../ ) NGL_TARGET_LINK_LIBRARIES(svcAvmClient PRIVATE RTI::nddscpp2 ddsconnector PUBLIC svcAvmCommon ddsftc ) NGL_INSTALL_TARGET(svcAvmClient) # # --- Library svcAvmServer -------------------------------------------------------------------------------- # SET(SRCS_server avm_export.h ) # generate avm_[d|f]ts.h, avm_[d|f]ts_impl.[cpp|h] CODEGEN_SERVER_TOPICS(SRCS_server ${xml_FILE}) NGL_ADD_LIBRARY(AAR SV svcAvmServer SHARED ${SRCS_server}) NGL_TARGET_INCLUDE_DIRECTORIES(svcAvmServer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../ ${CMAKE_CURRENT_BINARY_DIR}/../ ) NGL_TARGET_LINK_LIBRARIES(svcAvmServer PRIVATE RTI::nddscpp2 ddsconnector ddsfts PUBLIC svcAvmCommon ngldb ) NGL_INSTALL_TARGET(svcAvmServer) # # --- Topic Type Plugin -------------------------------------------------------------- # CREATE_TOPIC_TYPE_PLUGIN(${xml_FILE}) # # --- Executable svcAudioVideoManagement (sAVM) ------------------------------------------------- # LIST(APPEND SRCS_exe av_control.h av_control.cpp cnr_handler.h cnr_handler.cpp dds_handler.h dds_handler.cpp dds_handler_exercise.h dds_handler_exercise.cpp exercise_handler.h exercise_handler.cpp exercises_handler.h exercises_handler.cpp import_handler.h import_handler.cpp frequency_set_handler.h frequency_set_handler.cpp frequency_planning_handler.h frequency_planning_handler.cpp fm_control.h fm_control.cpp handler_menu_struct.h handler_menu_struct.cpp main.cpp main_handler.h main_handler.cpp object_menu_struct.h object_menu_struct.cpp default_av_menus.h default_av_menus.cpp settings.h settings.cpp tvc_handler.h tvc_handler.cpp cnr_tvc_profile_handler.h cnr_tvc_profile_handler.cpp audio_video_handler.h audio_video_handler.cpp active_exercises.h active_exercises.cpp stream_name_mapping_publisher.h stream_name_mapping_publisher.cpp log4cxx_avm.props object_video_team.cpp object_video_team.h handler_video_team.cpp handler_video_team.h object_video_receiver.cpp object_video_receiver.h handler_video_receiver.cpp handler_video_receiver.h object_frequency_planning_status.cpp object_frequency_planning_status.h handler_frequency_planning_status.cpp handler_frequency_planning_status.h ${xml_FILE} ) # Generate avm.sql, avm.xml CODEGEN_SQL(SRCS_exe ${xml_FILE}) NGL_ADD_SVC_ICON(SRCS_exe) NGL_ADD_EXECUTABLE(AAR SV svcAudioVideoManagement ${SRCS_exe}) NGL_TARGET_LINK_LIBRARIES(svcAudioVideoManagement PUBLIC Qt5::Core Qt5::Network svcAvmCommon svcAvmServer svcCoreClient svcExmClient svcIsmClient svcAsmClient ddsconnector nglsettings ProjectConfig LtsCommandLineParser NGLLogger nglcoreapplication ngltools LtsUtilsCoreHeaderOnly Boost::boost svcCnrHelper ) NGL_INSTALL_TARGET(svcAudioVideoManagement) NGL_INSTALL(AAR SV FILES log4cxx_avm.props DESTINATION bin) NGL_ADD_TARGET_LINK(svcAudioVideoManagement sAVM) # Uncomment if necessary ADD_SUBDIRECTORY(ModuleTests) ADD_SUBDIRECTORY(UnitTests)