From c02fbed331563c8636417837906cc95fa0fe688a Mon Sep 17 00:00:00 2001 From: Dennis Klein Date: Thu, 30 Aug 2018 15:56:32 +0200 Subject: [PATCH] Require msgpack 3.1.0 Since 3.1.0 msgpack ships a proper CMake package exporting a target for the header-only C++ library. Allows us to get rid of our custom find module. --- CMakeLists.txt | 21 +++---------------- cmake/Findmsgpack.cmake | 46 ----------------------------------------- fairmq/CMakeLists.txt | 2 +- 3 files changed, 4 insertions(+), 65 deletions(-) delete mode 100644 cmake/Findmsgpack.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index fd99f6a2..34930832 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,17 +43,6 @@ if(FAST_BUILD) include(cotire) endif() -macro(find_msgpack) - if(NOT msgpack_FOUND) - find_package2(PRIVATE msgpack VERSION 3.0.0) - set(PROJECT_msgpack_VERSION 2.1.5) - if(NOT msgpack_FOUND) - find_package2(PRIVATE msgpack VERSION 2.1.5 REQUIRED) - endif() - set(msgpack_ROOT ${PACKAGE_PREFIX_DIR}) - endif() -endmacro() - set(CMAKE_THREAD_PREFER_PTHREAD TRUE) set(THREADS_PREFER_PTHREAD_FLAG TRUE) find_package(Threads REQUIRED) @@ -69,12 +58,7 @@ endif() if(BUILD_NANOMSG_TRANSPORT) find_package2(PRIVATE nanomsg REQUIRED) set(PROJECT_nanomsg_VERSION 1.1.3) # Once upstream releases 1.1.5, we should bump again and use version check - find_package2(PRIVATE msgpack VERSION 3.0.0) - set(PROJECT_msgpack_VERSION 2.1.5) - if(NOT msgpack_FOUND) - find_package2(PRIVATE msgpack VERSION 2.1.5 REQUIRED) - endif() - set(msgpack_ROOT ${PACKAGE_PREFIX_DIR}) + find_package2(PRIVATE msgpack VERSION 3.1.0 REQUIRED) endif() if(BUILD_OFI_TRANSPORT) @@ -232,7 +216,8 @@ if(PROJECT_PACKAGE_DEPENDENCIES) elseif(${dep} STREQUAL GTest) get_filename_component(prefix ${GTEST_INCLUDE_DIRS}/.. ABSOLUTE) elseif(${dep} STREQUAL msgpack) - set(prefix ${msgpack_ROOT}) + get_target_property(msgpack_include msgpackc-cxx INTERFACE_INCLUDE_DIRECTORIES) + get_filename_component(prefix ${msgpack_include}/.. ABSOLUTE) elseif(${dep} STREQUAL OFI) get_filename_component(prefix ${${dep}_INCLUDE_DIRS}/.. ABSOLUTE) elseif(${dep} STREQUAL Doxygen) diff --git a/cmake/Findmsgpack.cmake b/cmake/Findmsgpack.cmake deleted file mode 100644 index 3d28453b..00000000 --- a/cmake/Findmsgpack.cmake +++ /dev/null @@ -1,46 +0,0 @@ -################################################################################ -# 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 4d30275b..9695d13f 100644 --- a/fairmq/CMakeLists.txt +++ b/fairmq/CMakeLists.txt @@ -222,7 +222,7 @@ target_include_directories(${_target} # link libraries # ################## if(BUILD_NANOMSG_TRANSPORT) - set(NANOMSG_DEPS nanomsg msgpack::msgpack) + set(NANOMSG_DEPS nanomsg msgpackc-cxx) endif() if(BUILD_OFI_TRANSPORT) set(OFI_DEPS OFI::libfabric protobuf::libprotobuf $)