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
|
||||
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(PRIVATE ZeroMQ VERSION 4.1.5 REQUIRED)
|
||||
|
||||
if(BUILD_NANOMSG_TRANSPORT)
|
||||
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(FILES cmake/FindZeroMQ.cmake
|
||||
DESTINATION ${PROJECT_INSTALL_CMAKEMODDIR}
|
||||
)
|
||||
if(BUILD_DDS_PLUGIN)
|
||||
install(FILES cmake/FindDDS.cmake
|
||||
DESTINATION ${PROJECT_INSTALL_CMAKEMODDIR}
|
||||
|
|
19
README.md
19
README.md
|
@ -6,17 +6,14 @@ C++ Message Queuing Library
|
|||
|
||||
* **Boost** (PUBLIC)
|
||||
* **FairLogger** (PUBLIC)
|
||||
* CMake
|
||||
* dl
|
||||
* pthread
|
||||
* rt (Linux)
|
||||
* ZeroMQ
|
||||
* GTest (optional, `tests`)
|
||||
* Msgpack (optional, `nanomsg_transport`)
|
||||
* nanomsg (optional, `nanomsg_transport`)
|
||||
* OFI (optional, `ofi_transport`)
|
||||
* Protobuf (optional, `ofi_transport`)
|
||||
* DDS (optional, `dds_plugin`)
|
||||
* CMake (BUILD)
|
||||
* GTest (BUILD, optional, `tests`)
|
||||
* ZeroMQ (PRIVATE)
|
||||
* Msgpack (PRIVATE, optional, `nanomsg_transport`)
|
||||
* nanomsg (PRIVATE, optional, `nanomsg_transport`)
|
||||
* OFI (PRIVATE, optional, `ofi_transport`)
|
||||
* Protobuf (PRIVATE, optional, `ofi_transport`)
|
||||
* DDS (PRIVATE, optional, `dds_plugin`)
|
||||
|
||||
## Installation
|
||||
|
||||
|
|
|
@ -264,12 +264,15 @@ macro(find_package2 qualifier pkgname)
|
|||
cmake_parse_arguments(ARGS "" "VERSION" "COMPONENTS" ${ARGN})
|
||||
|
||||
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)
|
||||
find_package(${pkgname} ${ARGS_VERSION} QUIET COMPONENTS ${ARGS_COMPONENTS} ${ARGS_UNPARSED_ARGUMENTS})
|
||||
else()
|
||||
find_package(${pkgname} ${ARGS_VERSION} QUIET ${ARGS_UNPARSED_ARGUMENTS})
|
||||
endif()
|
||||
set(CMAKE_PREFIX_PATH ${old_CPP})
|
||||
unset(old_CPP)
|
||||
|
||||
if(${qualifier} STREQUAL PRIVATE)
|
||||
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)
|
||||
add_library(nanomsg SHARED IMPORTED)
|
||||
set_target_properties(nanomsg PROPERTIES
|
||||
IMPORTED_LOCATION ${NANOMSG_LIBRARY_SHARED}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${NANOMSG_INCLUDE_DIR}
|
||||
IMPORTED_LOCATION ${nanomsg_LIBRARY_SHARED}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${nanomsg_INCLUDE_DIR}
|
||||
)
|
||||
endif()
|
||||
|
|
|
@ -219,7 +219,6 @@ target_link_libraries(FairMQ
|
|||
|
||||
PUBLIC # libFairMQ AND consumers of libFairMQ link aginst public dependencies
|
||||
dl
|
||||
pthread
|
||||
Boost::boost
|
||||
Boost::program_options
|
||||
Boost::thread
|
||||
|
@ -229,10 +228,9 @@ target_link_libraries(FairMQ
|
|||
Boost::date_time
|
||||
Boost::signals
|
||||
FairLogger::FairLogger
|
||||
$<$<PLATFORM_ID:Linux>:rt>
|
||||
|
||||
PRIVATE # only libFairMQ links against private dependencies
|
||||
ZeroMQ
|
||||
libzmq
|
||||
${NANOMSG_DEPS}
|
||||
${OFI_DEPS}
|
||||
)
|
||||
|
|
|
@ -59,7 +59,7 @@ add_testsuite(FairMQ.Parts
|
|||
parts/runner.cxx
|
||||
parts/_iterator_interface.cxx
|
||||
|
||||
LINKS FairMQ ZeroMQ
|
||||
LINKS FairMQ
|
||||
INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/parts
|
||||
TIMEOUT 5
|
||||
)
|
||||
|
@ -69,7 +69,7 @@ add_testsuite(FairMQ.MessageResize
|
|||
message_resize/runner.cxx
|
||||
message_resize/_message_resize.cxx
|
||||
|
||||
LINKS FairMQ ZeroMQ
|
||||
LINKS FairMQ
|
||||
INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/message_resize
|
||||
TIMEOUT 5
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue
Block a user