diff --git a/CMakeLists.txt b/CMakeLists.txt index 30df611f..9187ef70 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -139,12 +139,7 @@ endif() # Targets ###################################################################### -if(BUILD_FAIRMQ) - configure_file(${PROJECT_NAME_LOWER}/Version.h.in - ${CMAKE_BINARY_DIR}/${PROJECT_NAME_LOWER}/Version.h - @ONLY - ) - +if(BUILD_FAIRMQ OR BUILD_SDK) add_subdirectory(fairmq) endif() @@ -165,10 +160,6 @@ if(BUILD_DOCS) doxygen_add_docs(doxygen README.md fairmq) add_custom_target(docs ALL DEPENDS doxygen) endif() - -if(BUILD_SDK) - add_subdirectory(fairmq/sdk) -endif() ################################################################################ @@ -205,10 +196,6 @@ endif() # Installation ################################################################# if(BUILD_FAIRMQ) - install(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME_LOWER}/Version.h - DESTINATION ${PROJECT_INSTALL_INCDIR} - ) - install(FILES cmake/FindZeroMQ.cmake DESTINATION ${PROJECT_INSTALL_CMAKEMODDIR} ) diff --git a/FairMQTest.cmake b/FairMQTest.cmake index 5f0aedef..81fb2933 100644 --- a/FairMQTest.cmake +++ b/FairMQTest.cmake @@ -29,6 +29,7 @@ Set(configure_options "${configure_options};-DCMAKE_PREFIX_PATH=$ENV{SIMPATH}") Set(configure_options "${configure_options};-DBUILD_NANOMSG_TRANSPORT=ON") # Set(configure_options "${configure_options};-DBUILD_OFI_TRANSPORT=ON") Set(configure_options "${configure_options};-DBUILD_DDS_PLUGIN=ON") +Set(configure_options "${configure_options};-DBUILD_SDK=ON") Set(configure_options "${configure_options};-DFAST_BUILD=ON") Set(configure_options "${configure_options};-DCOTIRE_MAXIMUM_NUMBER_OF_UNITY_INCLUDES=-j$ENV{number_of_processors}") diff --git a/fairmq/CMakeLists.txt b/fairmq/CMakeLists.txt index cec4697b..65fee868 100644 --- a/fairmq/CMakeLists.txt +++ b/fairmq/CMakeLists.txt @@ -16,327 +16,442 @@ if(BUILD_PMIX_PLUGIN) add_subdirectory(plugins/PMIx) endif() - -########################## -# libFairMQ header files # -########################## -set(FAIRMQ_PUBLIC_HEADER_FILES - DeviceRunner.h - EventManager.h - FairMQChannel.h - FairMQDevice.h - FairMQLogger.h - FairMQMessage.h - FairMQParts.h - FairMQPoller.h - FairMQUnmanagedRegion.h - FairMQSocket.h - StateMachine.h - FairMQTransportFactory.h - MemoryResources.h - MemoryResourceTools.h - Tools.h - Transports.h - options/FairMQProgOptions.h - options/FairProgOptions.h - Plugin.h - PluginManager.h - PluginServices.h - runFairMQDevice.h - tools/CppSTL.h - tools/Network.h - tools/Process.h - tools/RateLimit.h - tools/Strings.h - tools/Unique.h - tools/Version.h -) - -set(FAIRMQ_PRIVATE_HEADER_FILES - devices/FairMQBenchmarkSampler.h - devices/FairMQMerger.h - devices/FairMQMultiplier.h - devices/FairMQProxy.h - devices/FairMQSink.h - devices/FairMQSplitter.h - options/FairMQParser.h - options/FairMQSuboptParser.h - options/FairProgOptionsHelper.h - plugins/Builtin.h - plugins/Control.h - shmem/FairMQMessageSHM.h - shmem/FairMQPollerSHM.h - shmem/FairMQUnmanagedRegionSHM.h - shmem/FairMQSocketSHM.h - shmem/FairMQTransportFactorySHM.h - shmem/Common.h - shmem/Manager.h - shmem/Region.h - zeromq/FairMQMessageZMQ.h - zeromq/FairMQPollerZMQ.h - zeromq/FairMQUnmanagedRegionZMQ.h - zeromq/FairMQSocketZMQ.h - zeromq/FairMQTransportFactoryZMQ.h -) - -if(BUILD_NANOMSG_TRANSPORT) - set(FAIRMQ_PRIVATE_HEADER_FILES ${FAIRMQ_PRIVATE_HEADER_FILES} - nanomsg/FairMQMessageNN.h - nanomsg/FairMQPollerNN.h - nanomsg/FairMQUnmanagedRegionNN.h - nanomsg/FairMQSocketNN.h - nanomsg/FairMQTransportFactoryNN.h +if(BUILD_FAIRMQ OR BUILD_SDK) + ########### + # Version # + ########### + configure_file(Version.h.in + ${CMAKE_BINARY_DIR}/${PROJECT_NAME_LOWER}/Version.h + @ONLY ) -endif() - -if(BUILD_OFI_TRANSPORT) - set(FAIRMQ_PRIVATE_HEADER_FILES ${FAIRMQ_PRIVATE_HEADER_FILES} - ofi/Context.h - ofi/Message.h - ofi/Poller.h - ofi/Socket.h - ofi/TransportFactory.h + install(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME_LOWER}/Version.h + DESTINATION ${PROJECT_INSTALL_INCDIR} ) -endif() + -########################## -# libFairMQ source files # -########################## -set(FAIRMQ_SOURCE_FILES - DeviceRunner.cxx - FairMQChannel.cxx - FairMQDevice.cxx - FairMQLogger.cxx - FairMQMessage.cxx - FairMQPoller.cxx - FairMQSocket.cxx - StateMachine.cxx - FairMQTransportFactory.cxx - devices/FairMQBenchmarkSampler.cxx - devices/FairMQMerger.cxx - devices/FairMQMultiplier.cxx - devices/FairMQProxy.cxx - devices/FairMQSplitter.cxx - options/FairMQParser.cxx - options/FairMQProgOptions.cxx - options/FairMQSuboptParser.cxx - Plugin.cxx - PluginManager.cxx - PluginServices.cxx - plugins/Control.cxx - shmem/FairMQMessageSHM.cxx - shmem/FairMQPollerSHM.cxx - shmem/FairMQUnmanagedRegionSHM.cxx - shmem/FairMQSocketSHM.cxx - shmem/FairMQTransportFactorySHM.cxx - shmem/Manager.cxx - shmem/Region.cxx - tools/Network.cxx - tools/Process.cxx - tools/Unique.cxx - zeromq/FairMQMessageZMQ.cxx - zeromq/FairMQPollerZMQ.cxx - zeromq/FairMQUnmanagedRegionZMQ.cxx - zeromq/FairMQSocketZMQ.cxx - zeromq/FairMQTransportFactoryZMQ.cxx - MemoryResources.cxx -) + ######### + # Tools # + ######### + set(target Tools) -if(BUILD_NANOMSG_TRANSPORT) - set(FAIRMQ_SOURCE_FILES ${FAIRMQ_SOURCE_FILES} - nanomsg/FairMQMessageNN.cxx - nanomsg/FairMQPollerNN.cxx - nanomsg/FairMQUnmanagedRegionNN.cxx - nanomsg/FairMQSocketNN.cxx - nanomsg/FairMQTransportFactoryNN.cxx + set(TOOLS_PUBLIC_HEADER_FILES + tools/CppSTL.h + tools/Network.h + tools/Process.h + tools/RateLimit.h + tools/Strings.h + tools/Unique.h + tools/Version.h + Tools.h ) -endif() -if(BUILD_OFI_TRANSPORT) - set(FAIRMQ_SOURCE_FILES ${FAIRMQ_SOURCE_FILES} - ofi/Context.cxx - ofi/Message.cxx - ofi/Poller.cxx - ofi/Socket.cxx - ofi/TransportFactory.cxx + set(TOOLS_SOURCE_FILES + tools/Network.cxx + tools/Process.cxx + tools/Unique.cxx ) + + add_library(${target} + ${TOOLS_SOURCE_FILES} + ${TOOLS_PUBLIC_HEADER_FILES} + ) + target_compile_definitions(${target} PUBLIC BOOST_ERROR_CODE_HEADER_ONLY) + target_include_directories(${target} + PUBLIC + $ + $ + ) + target_link_libraries(${target} + PRIVATE + FairLogger::FairLogger + ) + set_target_properties(${target} PROPERTIES + VERSION ${PROJECT_GIT_VERSION} + SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}" + OUTPUT_NAME FairMQ${target} + ) + install( + TARGETS ${target} + EXPORT ${PROJECT_EXPORT_SET} + RUNTIME DESTINATION ${PROJECT_INSTALL_BINDIR} + LIBRARY DESTINATION ${PROJECT_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${PROJECT_INSTALL_LIBDIR} + ) + foreach(HEADER ${TOOLS_PUBLIC_HEADER_FILES}) + get_filename_component(_path ${HEADER} DIRECTORY) + file(TO_CMAKE_PATH ${PROJECT_INSTALL_INCDIR}/${_path} _destination) + install(FILES ${HEADER} + DESTINATION ${_destination} + ) + endforeach() + + ################# + # State Machine # + ################# + set(target StateMachine) + + set(FSM_PUBLIC_HEADER_FILES + StateMachine.h + ) + + set(FSM_SOURCE_FILES + StateMachine.cxx + ) + + add_library(${target} + ${FSM_SOURCE_FILES} + ${FSM_PUBLIC_HEADER_FILES} + ) + target_compile_definitions(${target} PUBLIC BOOST_ERROR_CODE_HEADER_ONLY) + target_include_directories(${target} + PUBLIC + $ + $ + ) + target_link_libraries(${target} + PUBLIC + FairLogger::FairLogger + + PRIVATE + Boost::boost + Tools + ) + set_target_properties(${target} PROPERTIES + VERSION ${PROJECT_GIT_VERSION} + SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}" + OUTPUT_NAME FairMQ${target} + ) + install( + TARGETS ${target} + EXPORT ${PROJECT_EXPORT_SET} + RUNTIME DESTINATION ${PROJECT_INSTALL_BINDIR} + LIBRARY DESTINATION ${PROJECT_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${PROJECT_INSTALL_LIBDIR} + ) + foreach(HEADER ${FSM_PUBLIC_HEADER_FILES}) + get_filename_component(_path ${HEADER} DIRECTORY) + file(TO_CMAKE_PATH ${PROJECT_INSTALL_INCDIR}/${_path} _destination) + install(FILES ${HEADER} + DESTINATION ${_destination} + ) + endforeach() endif() +if(BUILD_FAIRMQ) + ########################## + # libFairMQ header files # + ########################## + set(FAIRMQ_PUBLIC_HEADER_FILES + DeviceRunner.h + EventManager.h + FairMQChannel.h + FairMQDevice.h + FairMQLogger.h + FairMQMessage.h + FairMQParts.h + FairMQPoller.h + FairMQUnmanagedRegion.h + FairMQSocket.h + FairMQTransportFactory.h + MemoryResources.h + MemoryResourceTools.h + Transports.h + options/FairMQProgOptions.h + options/FairProgOptions.h + Plugin.h + PluginManager.h + PluginServices.h + runFairMQDevice.h + ) -################### -# configure files # -################### -set(FAIRMQ_BIN_DIR ${CMAKE_BINARY_DIR}/fairmq) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/run/startMQBenchmark.sh.in ${CMAKE_CURRENT_BINARY_DIR}/startMQBenchmark.sh) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/options/startConfigExample.sh.in ${CMAKE_CURRENT_BINARY_DIR}/startConfigExample.sh) + set(FAIRMQ_PRIVATE_HEADER_FILES + devices/FairMQBenchmarkSampler.h + devices/FairMQMerger.h + devices/FairMQMultiplier.h + devices/FairMQProxy.h + devices/FairMQSink.h + devices/FairMQSplitter.h + options/FairMQParser.h + options/FairMQSuboptParser.h + options/FairProgOptionsHelper.h + plugins/Builtin.h + plugins/Control.h + shmem/FairMQMessageSHM.h + shmem/FairMQPollerSHM.h + shmem/FairMQUnmanagedRegionSHM.h + shmem/FairMQSocketSHM.h + shmem/FairMQTransportFactorySHM.h + shmem/Common.h + shmem/Manager.h + shmem/Region.h + zeromq/FairMQMessageZMQ.h + zeromq/FairMQPollerZMQ.h + zeromq/FairMQUnmanagedRegionZMQ.h + zeromq/FairMQSocketZMQ.h + zeromq/FairMQTransportFactoryZMQ.h + ) + + if(BUILD_NANOMSG_TRANSPORT) + set(FAIRMQ_PRIVATE_HEADER_FILES ${FAIRMQ_PRIVATE_HEADER_FILES} + nanomsg/FairMQMessageNN.h + nanomsg/FairMQPollerNN.h + nanomsg/FairMQUnmanagedRegionNN.h + nanomsg/FairMQSocketNN.h + nanomsg/FairMQTransportFactoryNN.h + ) + endif() + + if(BUILD_OFI_TRANSPORT) + set(FAIRMQ_PRIVATE_HEADER_FILES ${FAIRMQ_PRIVATE_HEADER_FILES} + ofi/Context.h + ofi/Message.h + ofi/Poller.h + ofi/Socket.h + ofi/TransportFactory.h + ) + endif() + + ########################## + # libFairMQ source files # + ########################## + set(FAIRMQ_SOURCE_FILES + DeviceRunner.cxx + FairMQChannel.cxx + FairMQDevice.cxx + FairMQLogger.cxx + FairMQMessage.cxx + FairMQPoller.cxx + FairMQSocket.cxx + FairMQTransportFactory.cxx + devices/FairMQBenchmarkSampler.cxx + devices/FairMQMerger.cxx + devices/FairMQMultiplier.cxx + devices/FairMQProxy.cxx + devices/FairMQSplitter.cxx + options/FairMQParser.cxx + options/FairMQProgOptions.cxx + options/FairMQSuboptParser.cxx + Plugin.cxx + PluginManager.cxx + PluginServices.cxx + plugins/Control.cxx + shmem/FairMQMessageSHM.cxx + shmem/FairMQPollerSHM.cxx + shmem/FairMQUnmanagedRegionSHM.cxx + shmem/FairMQSocketSHM.cxx + shmem/FairMQTransportFactorySHM.cxx + shmem/Manager.cxx + shmem/Region.cxx + zeromq/FairMQMessageZMQ.cxx + zeromq/FairMQPollerZMQ.cxx + zeromq/FairMQUnmanagedRegionZMQ.cxx + zeromq/FairMQSocketZMQ.cxx + zeromq/FairMQTransportFactoryZMQ.cxx + MemoryResources.cxx + ) + + if(BUILD_NANOMSG_TRANSPORT) + set(FAIRMQ_SOURCE_FILES ${FAIRMQ_SOURCE_FILES} + nanomsg/FairMQMessageNN.cxx + nanomsg/FairMQPollerNN.cxx + nanomsg/FairMQUnmanagedRegionNN.cxx + nanomsg/FairMQSocketNN.cxx + nanomsg/FairMQTransportFactoryNN.cxx + ) + endif() + + if(BUILD_OFI_TRANSPORT) + set(FAIRMQ_SOURCE_FILES ${FAIRMQ_SOURCE_FILES} + ofi/Context.cxx + ofi/Message.cxx + ofi/Poller.cxx + ofi/Socket.cxx + ofi/TransportFactory.cxx + ) + endif() -################################# -# define libFairMQ build target # -################################# -if(FAST_BUILD) - set(_target FairMQ_) -else() - set(_target FairMQ) -endif() -add_library(${_target} - ${FAIRMQ_SOURCE_FILES} - ${FAIRMQ_PUBLIC_HEADER_FILES} # for IDE integration - ${FAIRMQ_PRIVATE_HEADER_FILES} # for IDE integration -) -set_target_properties(${_target} PROPERTIES LABELS coverage) -if(FAST_BUILD) - set_target_properties(${_target} PROPERTIES OUTPUT_NAME FairMQ) -endif() + ################### + # configure files # + ################### + set(FAIRMQ_BIN_DIR ${CMAKE_BINARY_DIR}/fairmq) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/run/startMQBenchmark.sh.in ${CMAKE_CURRENT_BINARY_DIR}/startMQBenchmark.sh) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/options/startConfigExample.sh.in ${CMAKE_CURRENT_BINARY_DIR}/startConfigExample.sh) -############################ -# preprocessor definitions # -############################ -target_compile_definitions(${_target} PUBLIC BOOST_ERROR_CODE_HEADER_ONLY) -if(BUILD_NANOMSG_TRANSPORT) - target_compile_definitions(${_target} PRIVATE BUILD_NANOMSG_TRANSPORT) -endif() -if(BUILD_OFI_TRANSPORT) - target_compile_definitions(${_target} PRIVATE BUILD_OFI_TRANSPORT) -endif() + ################################# + # define libFairMQ build target # + ################################# + if(FAST_BUILD) + set(_target FairMQ_) + else() + set(_target FairMQ) + endif() + add_library(${_target} + ${FAIRMQ_SOURCE_FILES} + ${FAIRMQ_PUBLIC_HEADER_FILES} # for IDE integration + ${FAIRMQ_PRIVATE_HEADER_FILES} # for IDE integration + ) + set_target_properties(${_target} PROPERTIES LABELS coverage) + if(FAST_BUILD) + set_target_properties(${_target} PROPERTIES OUTPUT_NAME FairMQ) + endif() -####################### -# include directories # -####################### -target_include_directories(${_target} - PUBLIC # consumers inherit public include directories - $ - $ - $ - $ - $ -) + ############################ + # preprocessor definitions # + ############################ + target_compile_definitions(${_target} PUBLIC BOOST_ERROR_CODE_HEADER_ONLY) + if(BUILD_NANOMSG_TRANSPORT) + target_compile_definitions(${_target} PRIVATE BUILD_NANOMSG_TRANSPORT) + endif() + if(BUILD_OFI_TRANSPORT) + target_compile_definitions(${_target} PRIVATE BUILD_OFI_TRANSPORT) + endif() -################## -# link libraries # -################## -if(BUILD_NANOMSG_TRANSPORT) - set(NANOMSG_DEPS nanomsg msgpackc-cxx) -endif() -if(BUILD_OFI_TRANSPORT) - set(OFI_DEPS - asiofi::asiofi + + ####################### + # include directories # + ####################### + target_include_directories(${_target} + PUBLIC # consumers inherit public include directories + $ + $ + $ + $ + $ + ) + + ################## + # link libraries # + ################## + if(BUILD_NANOMSG_TRANSPORT) + set(NANOMSG_DEPS nanomsg msgpackc-cxx) + endif() + if(BUILD_OFI_TRANSPORT) + set(OFI_DEPS + asiofi::asiofi + Boost::container + ) + endif() + set(optional_deps ${NANOMSG_DEPS} ${OFI_DEPS}) + if(optional_deps) + list(REMOVE_DUPLICATES optional_deps) + endif() + + target_link_libraries(${_target} + INTERFACE # only consumers link against interface dependencies Boost::container + + PUBLIC # libFairMQ AND consumers of libFairMQ link aginst public dependencies + Threads::Threads + dl + $<$:rt> + Boost::boost + Boost::program_options + Boost::filesystem + Boost::regex + FairLogger::FairLogger + Tools + StateMachine + + PRIVATE # only libFairMQ links against private dependencies + libzmq + ${NANOMSG_DEPS} + ${OFI_DEPS} ) -endif() -set(optional_deps ${NANOMSG_DEPS} ${OFI_DEPS}) -if(optional_deps) - list(REMOVE_DUPLICATES optional_deps) -endif() - -target_link_libraries(${_target} - INTERFACE # only consumers link against interface dependencies - Boost::container - - PUBLIC # libFairMQ AND consumers of libFairMQ link aginst public dependencies - Threads::Threads - dl - $<$:rt> - Boost::boost - Boost::program_options - Boost::filesystem - Boost::regex - FairLogger::FairLogger - - PRIVATE # only libFairMQ links against private dependencies - libzmq - ${NANOMSG_DEPS} - ${OFI_DEPS} -) -set_target_properties(${_target} PROPERTIES - VERSION ${PROJECT_GIT_VERSION} - SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}" -) - - -############## -# fast build # -############## -if(FAST_BUILD) set_target_properties(${_target} PROPERTIES - COTIRE_UNITY_TARGET_NAME "FairMQ" - # COTIRE_ENABLE_PRECOMPILED_HEADER FALSE - EXCLUDE_FROM_ALL TRUE + VERSION ${PROJECT_GIT_VERSION} + SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}" ) - cotire(${_target}) - set_target_properties(FairMQ PROPERTIES EXCLUDE_FROM_ALL FALSE) - set_target_properties(FairMQ PROPERTIES LABELS coverage) + + + ############## + # fast build # + ############## + if(FAST_BUILD) + set_target_properties(${_target} PROPERTIES + COTIRE_UNITY_TARGET_NAME "FairMQ" + # COTIRE_ENABLE_PRECOMPILED_HEADER FALSE + EXCLUDE_FROM_ALL TRUE + ) + cotire(${_target}) + set_target_properties(FairMQ PROPERTIES EXCLUDE_FROM_ALL FALSE) + set_target_properties(FairMQ PROPERTIES LABELS coverage) + endif() + + + ############### + # executables # + ############### + add_executable(fairmq-bsampler run/runBenchmarkSampler.cxx) + target_link_libraries(fairmq-bsampler FairMQ) + + add_executable(fairmq-merger run/runMerger.cxx) + target_link_libraries(fairmq-merger FairMQ) + + add_executable(fairmq-multiplier run/runMultiplier.cxx) + target_link_libraries(fairmq-multiplier FairMQ) + + add_executable(fairmq-proxy run/runProxy.cxx) + target_link_libraries(fairmq-proxy FairMQ) + + add_executable(fairmq-sink run/runSink.cxx) + target_link_libraries(fairmq-sink FairMQ) + + add_executable(fairmq-splitter run/runSplitter.cxx) + target_link_libraries(fairmq-splitter FairMQ) + + add_executable(runConfigExample options/runConfigEx.cxx) + target_link_libraries(runConfigExample FairMQ) + + add_executable(fairmq-shmmonitor shmem/Monitor.cxx shmem/Monitor.h shmem/runMonitor.cxx) + target_link_libraries(fairmq-shmmonitor PUBLIC + Threads::Threads + $<$:rt> + Boost::boost + Boost::date_time + Boost::program_options + ) + target_include_directories(fairmq-shmmonitor PUBLIC + $ + ) + + add_executable(fairmq-uuid-gen run/runUuidGenerator.cxx) + target_link_libraries(fairmq-uuid-gen FairMQ) + + + ########### + # install # + ########### + install( + TARGETS + FairMQ + fairmq-bsampler + fairmq-merger + fairmq-multiplier + fairmq-proxy + fairmq-sink + fairmq-splitter + fairmq-shmmonitor + fairmq-uuid-gen + + EXPORT ${PROJECT_EXPORT_SET} + RUNTIME DESTINATION ${PROJECT_INSTALL_BINDIR} + LIBRARY DESTINATION ${PROJECT_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${PROJECT_INSTALL_LIBDIR} + ) + + # preserve relative path and prepend fairmq + foreach(HEADER ${FAIRMQ_PUBLIC_HEADER_FILES}) + get_filename_component(_path ${HEADER} DIRECTORY) + file(TO_CMAKE_PATH ${PROJECT_INSTALL_INCDIR}/${_path} _destination) + install(FILES ${HEADER} + DESTINATION ${_destination} + ) + endforeach() endif() - -############### -# executables # -############### -add_executable(fairmq-bsampler run/runBenchmarkSampler.cxx) -target_link_libraries(fairmq-bsampler FairMQ) - -add_executable(fairmq-merger run/runMerger.cxx) -target_link_libraries(fairmq-merger FairMQ) - -add_executable(fairmq-multiplier run/runMultiplier.cxx) -target_link_libraries(fairmq-multiplier FairMQ) - -add_executable(fairmq-proxy run/runProxy.cxx) -target_link_libraries(fairmq-proxy FairMQ) - -add_executable(fairmq-sink run/runSink.cxx) -target_link_libraries(fairmq-sink FairMQ) - -add_executable(fairmq-splitter run/runSplitter.cxx) -target_link_libraries(fairmq-splitter FairMQ) - -add_executable(runConfigExample options/runConfigEx.cxx) -target_link_libraries(runConfigExample FairMQ) - -add_executable(fairmq-shmmonitor shmem/Monitor.cxx shmem/Monitor.h shmem/runMonitor.cxx) -target_link_libraries(fairmq-shmmonitor PUBLIC - Threads::Threads - $<$:rt> - Boost::boost - Boost::date_time - Boost::program_options -) -target_include_directories(fairmq-shmmonitor PUBLIC - $ -) - -add_executable(fairmq-uuid-gen run/runUuidGenerator.cxx) -target_link_libraries(fairmq-uuid-gen FairMQ) - - -########### -# install # -########### -install( - TARGETS - FairMQ - fairmq-bsampler - fairmq-merger - fairmq-multiplier - fairmq-proxy - fairmq-sink - fairmq-splitter - fairmq-shmmonitor - fairmq-uuid-gen - - EXPORT ${PROJECT_EXPORT_SET} - RUNTIME DESTINATION ${PROJECT_INSTALL_BINDIR} - LIBRARY DESTINATION ${PROJECT_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${PROJECT_INSTALL_LIBDIR} -) - -# preserve relative path and prepend fairmq -foreach(HEADER ${FAIRMQ_PUBLIC_HEADER_FILES}) - get_filename_component(_path ${HEADER} DIRECTORY) - file(TO_CMAKE_PATH ${PROJECT_INSTALL_INCDIR}/${_path} _destination) - install(FILES ${HEADER} - DESTINATION ${_destination} - ) -endforeach() +if(BUILD_SDK) + add_subdirectory(sdk) +endif() diff --git a/fairmq/StateMachine.h b/fairmq/StateMachine.h index faaf6cfc..18fdc34d 100644 --- a/fairmq/StateMachine.h +++ b/fairmq/StateMachine.h @@ -9,7 +9,7 @@ #ifndef FAIRMQSTATEMACHINE_H_ #define FAIRMQSTATEMACHINE_H_ -#include "FairMQLogger.h" +#include #include #include diff --git a/fairmq/sdk/CMakeLists.txt b/fairmq/sdk/CMakeLists.txt index d6cc2096..f5185c32 100644 --- a/fairmq/sdk/CMakeLists.txt +++ b/fairmq/sdk/CMakeLists.txt @@ -9,7 +9,7 @@ ################ # libFairMQSDK # ################ -set(target FairMQ_SDK) +set(target SDK) set(SDK_PUBLIC_HEADER_FILES Session.h @@ -39,14 +39,17 @@ target_include_directories(${target} target_link_libraries(${target} PUBLIC FairLogger::FairLogger + StateMachine PRIVATE + Tools DDS::dds_intercom_lib DDS::dds_protocol_lib ) set_target_properties(${target} PROPERTIES VERSION ${PROJECT_GIT_VERSION} SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}" + OUTPUT_NAME FairMQ_${target} ) ############### @@ -55,13 +58,13 @@ set_target_properties(${target} PROPERTIES add_executable(fairmq runFairMQ.cxx) target_link_libraries(fairmq PRIVATE - FairMQ_SDK + SDK Boost::program_options ) install( TARGETS - FairMQ_SDK + SDK fairmq EXPORT ${PROJECT_EXPORT_SET} @@ -71,9 +74,9 @@ install( ) # preserve relative path and prepend fairmq -foreach(HEADER ${SDK_PUBLIC_HEADER_FILES}) +foreach(HEADER IN LISTS SDK_PUBLIC_HEADER_FILES) get_filename_component(_path ${HEADER} DIRECTORY) - file(TO_CMAKE_PATH ${PROJECT_INSTALL_INCDIR}/${_path} _destination) + file(TO_CMAKE_PATH ${PROJECT_INSTALL_INCDIR}/sdk/${_path} _destination) install(FILES ${HEADER} DESTINATION ${_destination} ) diff --git a/fairmq/sdk/runFairMQ.cxx b/fairmq/sdk/runFairMQ.cxx index 8e76be37..a874a88b 100644 --- a/fairmq/sdk/runFairMQ.cxx +++ b/fairmq/sdk/runFairMQ.cxx @@ -7,9 +7,12 @@ ********************************************************************************/ #include +#include +#include -int main(int argc, char *argv[]) +int main(int /*argc*/, char ** /*argv*/) { - + std::cout << fair::mq::State::Idle << std::endl; + return 0; } diff --git a/fairmq/tools/Network.cxx b/fairmq/tools/Network.cxx index d1a4c14f..f251743d 100644 --- a/fairmq/tools/Network.cxx +++ b/fairmq/tools/Network.cxx @@ -12,7 +12,7 @@ #define _GNU_SOURCE // To get defns of NI_MAXSERV and NI_MAXHOST #endif -#include "FairMQLogger.h" +#include #include #include