From ab6fd35a860fadb630a8c68ceacc572de16fee4f Mon Sep 17 00:00:00 2001 From: Dennis Klein Date: Wed, 8 Aug 2018 16:28:46 +0200 Subject: [PATCH] Add header-only target for msgpack --- cmake/Findmsgpack.cmake | 46 +++++++++++++++++++++++++++++++++++++++++ fairmq/CMakeLists.txt | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 cmake/Findmsgpack.cmake diff --git a/cmake/Findmsgpack.cmake b/cmake/Findmsgpack.cmake new file mode 100644 index 00000000..3d28453b --- /dev/null +++ b/cmake/Findmsgpack.cmake @@ -0,0 +1,46 @@ +################################################################################ +# Copyright (C) 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" # +################################################################################ + +unset(_args) + +if(msgpack_FIND_VERSION) + list(APPEND _args ${msgpack_FIND_VERSION}) +endif() + +if(msgpack_FIND_EXACT) + list(APPEND _args "EXACT") +endif() + +if(msgpack_FIND_QUIETLY) + list(APPEND _args "QUIET") +endif() + +if(msgpack_FIND_REQUIRED) + list(APPEND _args "REQUIRED") +endif() + +if(msgpack_FIND_COMPONENTS) + list(APPEND _args "COMPONENTS" ${msgpack_FIND_COMPONENTS}) +endif() + +find_package(msgpack ${_args} CONFIG) + +if(msgpack_FOUND AND NOT TARGET msgpack::msgpack) + # config mode find_package does not set $msgpack_ROOT, workaround by extracting + # root path from library target + unset(_msgpack_lib) + unset(_prefix) + get_target_property(_msgpack_lib msgpackc INTERFACE_LOCATION) + get_filename_component(_prefix ${_msgpack_lib} DIRECTORY) + get_filename_component(_prefix ${_prefix}/.. ABSOLUTE) + + add_library(msgpack::msgpack INTERFACE IMPORTED) + set_target_properties(msgpack::msgpack PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_prefix}/include" + ) +endif() diff --git a/fairmq/CMakeLists.txt b/fairmq/CMakeLists.txt index eee7f8af..c2269130 100644 --- a/fairmq/CMakeLists.txt +++ b/fairmq/CMakeLists.txt @@ -214,7 +214,7 @@ target_include_directories(FairMQ # link libraries # ################## if(BUILD_NANOMSG_TRANSPORT) - set(NANOMSG_DEPS nanomsg msgpackc) + set(NANOMSG_DEPS nanomsg msgpack::msgpack) endif() if(BUILD_OFI_TRANSPORT) set(OFI_DEPS OFI::libfabric protobuf::libprotobuf $)