mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-13 08:41:16 +00:00
Depend on ZeroMQ via CMake package
This commit is contained in:
parent
96e326cf3c
commit
7bb4b0625e
|
@ -36,8 +36,8 @@ option(BUILD_DDS_PLUGIN "Build DDS plugin." OFF)
|
||||||
find_package2(PUBLIC Boost VERSION 1.64 REQUIRED
|
find_package2(PUBLIC Boost VERSION 1.64 REQUIRED
|
||||||
COMPONENTS program_options thread system filesystem regex date_time signals
|
COMPONENTS program_options thread system filesystem regex date_time signals
|
||||||
)
|
)
|
||||||
find_package2(PRIVATE ZeroMQ VERSION 4.2.2 REQUIRED)
|
|
||||||
find_package2(PUBLIC FairLogger VERSION 1.0.6 REQUIRED)
|
find_package2(PUBLIC FairLogger VERSION 1.0.6 REQUIRED)
|
||||||
|
find_package2(PRIVATE ZeroMQ VERSION 4.1.5 REQUIRED)
|
||||||
|
|
||||||
if(BUILD_NANOMSG_TRANSPORT)
|
if(BUILD_NANOMSG_TRANSPORT)
|
||||||
find_package2(PRIVATE nanomsg VERSION 1.0.0 REQUIRED)
|
find_package2(PRIVATE nanomsg VERSION 1.0.0 REQUIRED)
|
||||||
|
@ -95,9 +95,6 @@ install(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME_LOWER}/Version.h
|
||||||
)
|
)
|
||||||
|
|
||||||
# Install cmake modules
|
# Install cmake modules
|
||||||
install(FILES cmake/FindZeroMQ.cmake
|
|
||||||
DESTINATION ${PROJECT_INSTALL_CMAKEMODDIR}
|
|
||||||
)
|
|
||||||
if(BUILD_DDS_PLUGIN)
|
if(BUILD_DDS_PLUGIN)
|
||||||
install(FILES cmake/FindDDS.cmake
|
install(FILES cmake/FindDDS.cmake
|
||||||
DESTINATION ${PROJECT_INSTALL_CMAKEMODDIR}
|
DESTINATION ${PROJECT_INSTALL_CMAKEMODDIR}
|
||||||
|
|
19
README.md
19
README.md
|
@ -6,17 +6,14 @@ C++ Message Queuing Library
|
||||||
|
|
||||||
* **Boost** (PUBLIC)
|
* **Boost** (PUBLIC)
|
||||||
* **FairLogger** (PUBLIC)
|
* **FairLogger** (PUBLIC)
|
||||||
* CMake
|
* CMake (BUILD)
|
||||||
* dl
|
* GTest (BUILD, optional, `tests`)
|
||||||
* pthread
|
* ZeroMQ (PRIVATE)
|
||||||
* rt (Linux)
|
* Msgpack (PRIVATE, optional, `nanomsg_transport`)
|
||||||
* ZeroMQ
|
* nanomsg (PRIVATE, optional, `nanomsg_transport`)
|
||||||
* GTest (optional, `tests`)
|
* OFI (PRIVATE, optional, `ofi_transport`)
|
||||||
* Msgpack (optional, `nanomsg_transport`)
|
* Protobuf (PRIVATE, optional, `ofi_transport`)
|
||||||
* nanomsg (optional, `nanomsg_transport`)
|
* DDS (PRIVATE, optional, `dds_plugin`)
|
||||||
* OFI (optional, `ofi_transport`)
|
|
||||||
* Protobuf (optional, `ofi_transport`)
|
|
||||||
* DDS (optional, `dds_plugin`)
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
|
|
@ -264,12 +264,15 @@ macro(find_package2 qualifier pkgname)
|
||||||
cmake_parse_arguments(ARGS "" "VERSION" "COMPONENTS" ${ARGN})
|
cmake_parse_arguments(ARGS "" "VERSION" "COMPONENTS" ${ARGN})
|
||||||
|
|
||||||
string(TOUPPER ${pkgname} pkgname_upper)
|
string(TOUPPER ${pkgname} pkgname_upper)
|
||||||
set(CMAKE_PREFIX_PATH ${${pkgname_upper}_ROOT} $ENV{${pkgname_upper}_ROOT} ${CMAKE_PREFIX_PATH})
|
set(old_CPP ${CMAKE_PREFIX_PATH})
|
||||||
|
set(CMAKE_PREFIX_PATH ${${pkgname_upper}_ROOT} $ENV{${pkgname_upper}_ROOT})
|
||||||
if(ARGS_COMPONENTS)
|
if(ARGS_COMPONENTS)
|
||||||
find_package(${pkgname} ${ARGS_VERSION} QUIET COMPONENTS ${ARGS_COMPONENTS} ${ARGS_UNPARSED_ARGUMENTS})
|
find_package(${pkgname} ${ARGS_VERSION} QUIET COMPONENTS ${ARGS_COMPONENTS} ${ARGS_UNPARSED_ARGUMENTS})
|
||||||
else()
|
else()
|
||||||
find_package(${pkgname} ${ARGS_VERSION} QUIET ${ARGS_UNPARSED_ARGUMENTS})
|
find_package(${pkgname} ${ARGS_VERSION} QUIET ${ARGS_UNPARSED_ARGUMENTS})
|
||||||
endif()
|
endif()
|
||||||
|
set(CMAKE_PREFIX_PATH ${old_CPP})
|
||||||
|
unset(old_CPP)
|
||||||
|
|
||||||
if(${qualifier} STREQUAL PRIVATE)
|
if(${qualifier} STREQUAL PRIVATE)
|
||||||
set(PROJECT_${pkgname}_VERSION ${ARGS_VERSION})
|
set(PROJECT_${pkgname}_VERSION ${ARGS_VERSION})
|
||||||
|
|
|
@ -1,112 +0,0 @@
|
||||||
################################################################################
|
|
||||||
# Copyright (C) 2012-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH #
|
|
||||||
# #
|
|
||||||
# This software is distributed under the terms of the #
|
|
||||||
# GNU Lesser General Public Licence (LGPL) version 3, #
|
|
||||||
# copied verbatim in the file "LICENSE" #
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
#
|
|
||||||
# Mohammad Al-Turany
|
|
||||||
# Dario Berzano
|
|
||||||
# Dennis Klein
|
|
||||||
# Matthias Richter
|
|
||||||
# Alexey Rybalchenko
|
|
||||||
# Florian Uhlig
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# #############################
|
|
||||||
# # Locate the ZeroMQ library #
|
|
||||||
# #############################
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Usage:
|
|
||||||
#
|
|
||||||
# find_package(ZeroMQ [version] [QUIET] [REQUIRED])
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Defines the following variables:
|
|
||||||
#
|
|
||||||
# ZeroMQ_FOUND - Found the ZeroMQ library
|
|
||||||
# ZeroMQ_INCLUDE_DIR (CMake cache) - Include directory
|
|
||||||
# ZeroMQ_LIBRARY_SHARED (CMake cache) - Path to shared libzmq
|
|
||||||
# ZeroMQ_LIBRARY_STATIC (CMake cache) - Path to static libzmq
|
|
||||||
# ZeroMQ_VERSION - full version string
|
|
||||||
# ZeroMQ_VERSION_MAJOR - major version component
|
|
||||||
# ZeroMQ_VERSION_MINOR - minor version component
|
|
||||||
# ZeroMQ_VERSION_PATCH - patch version component
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Accepts the following variables as hints for installation directories:
|
|
||||||
#
|
|
||||||
# ZEROMQ_ROOT (CMake var, ENV var)
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# If the above variables are not defined, or if ZeroMQ could not be found there,
|
|
||||||
# it will look for it in the system directories. Custom ZeroMQ installations
|
|
||||||
# will always have priority over system ones.
|
|
||||||
#
|
|
||||||
|
|
||||||
if(NOT ZEROMQ_ROOT)
|
|
||||||
set(ZEROMQ_ROOT $ENV{ZEROMQ_ROOT})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_path(ZeroMQ_INCLUDE_DIR
|
|
||||||
NAMES zmq.h zmq_utils.h
|
|
||||||
HINTS ${ZEROMQ_ROOT} $ENV{ZEROMQ_ROOT}
|
|
||||||
PATH_SUFFIXES include
|
|
||||||
DOC "ZeroMQ include directories"
|
|
||||||
)
|
|
||||||
|
|
||||||
find_library(ZeroMQ_LIBRARY_SHARED
|
|
||||||
NAMES libzmq.dylib libzmq.so
|
|
||||||
HINTS ${ZEROMQ_ROOT} $ENV{ZEROMQ_ROOT}
|
|
||||||
PATH_SUFFIXES lib
|
|
||||||
DOC "Path to libzmq.dylib or libzmq.so"
|
|
||||||
)
|
|
||||||
|
|
||||||
find_library(ZeroMQ_LIBRARY_STATIC NAMES libzmq.a
|
|
||||||
HINTS ${ZEROMQ_ROOT} $ENV{ZEROMQ_ROOT}
|
|
||||||
PATH_SUFFIXES lib
|
|
||||||
DOC "Path to libzmq.a"
|
|
||||||
)
|
|
||||||
|
|
||||||
find_file(ZeroMQ_HEADER_FILE "zmq.h"
|
|
||||||
${ZeroMQ_INCLUDE_DIR}
|
|
||||||
NO_DEFAULT_PATH
|
|
||||||
)
|
|
||||||
if(DEFINED ZeroMQ_HEADER_FILE)
|
|
||||||
file(READ "${ZeroMQ_HEADER_FILE}" _ZeroMQ_HEADER_FILE_CONTENT)
|
|
||||||
string(REGEX MATCH "#define ZMQ_VERSION_MAJOR ([0-9])" _MATCH "${_ZeroMQ_HEADER_FILE_CONTENT}")
|
|
||||||
set(ZeroMQ_VERSION_MAJOR ${CMAKE_MATCH_1})
|
|
||||||
string(REGEX MATCH "#define ZMQ_VERSION_MINOR ([0-9])" _MATCH "${_ZeroMQ_HEADER_FILE_CONTENT}")
|
|
||||||
set(ZeroMQ_VERSION_MINOR ${CMAKE_MATCH_1})
|
|
||||||
string(REGEX MATCH "#define ZMQ_VERSION_PATCH ([0-9])" _MATCH "${_ZeroMQ_HEADER_FILE_CONTENT}")
|
|
||||||
set(ZeroMQ_VERSION_PATCH ${CMAKE_MATCH_1})
|
|
||||||
set(ZeroMQ_VERSION "${ZeroMQ_VERSION_MAJOR}.${ZeroMQ_VERSION_MINOR}.${ZeroMQ_VERSION_PATCH}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
|
||||||
find_package_handle_standard_args(ZeroMQ
|
|
||||||
REQUIRED_VARS ZeroMQ_LIBRARY_SHARED ZeroMQ_INCLUDE_DIR ZeroMQ_LIBRARY_STATIC
|
|
||||||
VERSION_VAR ZeroMQ_VERSION
|
|
||||||
)
|
|
||||||
|
|
||||||
if(ZeroMQ_FOUND AND NOT TARGET ZeroMQ)
|
|
||||||
add_library(ZeroMQ SHARED IMPORTED)
|
|
||||||
set_target_properties(ZeroMQ PROPERTIES
|
|
||||||
IMPORTED_LOCATION ${ZeroMQ_LIBRARY_SHARED}
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES ${ZeroMQ_INCLUDE_DIR}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
mark_as_advanced(
|
|
||||||
ZeroMQ_LIBRARIES
|
|
||||||
ZeroMQ_LIBRARY_SHARED
|
|
||||||
ZeroMQ_LIBRARY_STATIC
|
|
||||||
ZeroMQ_HEADER_FILE
|
|
||||||
ZeroMQ_VERSION_MAJOR
|
|
||||||
ZeroMQ_VERSION_MINOR
|
|
||||||
ZeroMQ_VERSION_PATCH
|
|
||||||
)
|
|
|
@ -28,7 +28,7 @@ find_package_handle_standard_args(nanomsg
|
||||||
if(NOT TARGET nanomsg AND nanomsg_FOUND)
|
if(NOT TARGET nanomsg AND nanomsg_FOUND)
|
||||||
add_library(nanomsg SHARED IMPORTED)
|
add_library(nanomsg SHARED IMPORTED)
|
||||||
set_target_properties(nanomsg PROPERTIES
|
set_target_properties(nanomsg PROPERTIES
|
||||||
IMPORTED_LOCATION ${NANOMSG_LIBRARY_SHARED}
|
IMPORTED_LOCATION ${nanomsg_LIBRARY_SHARED}
|
||||||
INTERFACE_INCLUDE_DIRECTORIES ${NANOMSG_INCLUDE_DIR}
|
INTERFACE_INCLUDE_DIRECTORIES ${nanomsg_INCLUDE_DIR}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -219,7 +219,6 @@ target_link_libraries(FairMQ
|
||||||
|
|
||||||
PUBLIC # libFairMQ AND consumers of libFairMQ link aginst public dependencies
|
PUBLIC # libFairMQ AND consumers of libFairMQ link aginst public dependencies
|
||||||
dl
|
dl
|
||||||
pthread
|
|
||||||
Boost::boost
|
Boost::boost
|
||||||
Boost::program_options
|
Boost::program_options
|
||||||
Boost::thread
|
Boost::thread
|
||||||
|
@ -229,10 +228,9 @@ target_link_libraries(FairMQ
|
||||||
Boost::date_time
|
Boost::date_time
|
||||||
Boost::signals
|
Boost::signals
|
||||||
FairLogger::FairLogger
|
FairLogger::FairLogger
|
||||||
$<$<PLATFORM_ID:Linux>:rt>
|
|
||||||
|
|
||||||
PRIVATE # only libFairMQ links against private dependencies
|
PRIVATE # only libFairMQ links against private dependencies
|
||||||
ZeroMQ
|
libzmq
|
||||||
${NANOMSG_DEPS}
|
${NANOMSG_DEPS}
|
||||||
${OFI_DEPS}
|
${OFI_DEPS}
|
||||||
)
|
)
|
||||||
|
|
|
@ -59,7 +59,7 @@ add_testsuite(FairMQ.Parts
|
||||||
parts/runner.cxx
|
parts/runner.cxx
|
||||||
parts/_iterator_interface.cxx
|
parts/_iterator_interface.cxx
|
||||||
|
|
||||||
LINKS FairMQ ZeroMQ
|
LINKS FairMQ
|
||||||
INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/parts
|
INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/parts
|
||||||
TIMEOUT 5
|
TIMEOUT 5
|
||||||
)
|
)
|
||||||
|
@ -69,7 +69,7 @@ add_testsuite(FairMQ.MessageResize
|
||||||
message_resize/runner.cxx
|
message_resize/runner.cxx
|
||||||
message_resize/_message_resize.cxx
|
message_resize/_message_resize.cxx
|
||||||
|
|
||||||
LINKS FairMQ ZeroMQ
|
LINKS FairMQ
|
||||||
INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/message_resize
|
INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/message_resize
|
||||||
TIMEOUT 5
|
TIMEOUT 5
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user