4.2 KiB
FairMQ
C++ Message Queuing Library
Dependencies
- CMake
- GTest
- Boost
- FairLogger
- dl
- pthread
- rt (Linux)
- ZeroMQ
- Msgpack (optional, nanomsg transport)
- nanomsg (optional, nanomsg transport)
- libfabric (optional, OFI transport)
- Protobuf (optional, OFI transport)
- DDS (optional, DDS plugin)
Installation
git clone https://github.com/FairRootGroup/FairMQ
mkdir fairmq_build && cd fairmq_build
cmake -DCMAKE_INSTALL_PREFIX=./fairmq_install ../fairmq
cmake --build . --target install
Usage
In your CMakeLists.txt
:
find_package(FairMQ)
If FairMQ is not installed in system directories, you can hint the installation:
set(CMAKE_PREFIX_PATH /path/to/FairMQ/installation ${CMAKE_PREFIX_PATH})
find_package(FairMQ)
find_package(FairMQ)
will define an imported target FairMQ::FairMQ
(An alias FairRoot::FairMQ
is also defined, but it is deprecated).
By default, find_package(FairMQ)
will also invoke find_package
commands for all its dependencies. You can override this behaviour though, e.g.:
set(FairMQ_PACKAGE_DEPENDENCIES_DISABLED ON)
find_package(FairMQ)
find_package(Boost COMPONENTS ${FairMQ_BOOST_COMPONENTS})
find_package(ZeroMQ)
# ...
The above is useful, if you need to customize the find_package
calls of FairMQ's dependencies. Check the next section for more CMake options.
CMake options
On command line:
-DDISABLE_COLOR=ON
disables coloured console output.-DBUILD_TESTING=OFF
disables building of tests.-DBUILD_NANOMSG_TRANSPORT=ON
enables building of nanomsg transport.-DBUILD_OFI_TRANSPORT=ON
enables building of the experimental OFI transport.-DBUILD_DDS_PLUGIN=ON
enables building of the DDS plugin.
In front of the find_package(FairMQ)
call:
set(BUILD_NANOMSG_TRANSPORT ON)
enables building of nanomsg transport.set(BUILD_OFI_TRANSPORT ON)
enables building of the experimental OFI transport.set(BUILD_DDS_PLUGIN ON)
enables building of the DDS plugin.set(FairMQ_PACKAGE_DEPENDENCIES_DISABLED ON)
disables implicit discovery of all transitive package dependencies.- ... TODO
After the find_package(FairMQ)
the following CMake variables are defined:
${FairMQ_BOOST_COMPONENTS}
contains the list of Boost components FairMQ depends on.- ... TODO
Documentation
Standard FairRoot is running all the different analysis tasks within one process. FairMQ (Message Queue) allows starting tasks on different processes and provides the communication layer between these processes.
License
GNU Lesser General Public Licence (LGPL) version 3, see LICENSE.
Copyright (C) 2013-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH