From d408af767c925e8c2e4056ac0b1db322f3721fa2 Mon Sep 17 00:00:00 2001 From: Dennis Klein Date: Thu, 13 May 2021 00:49:02 +0200 Subject: [PATCH] extern/asio: Bump and require v1.18.1 --- .gitmodules | 2 +- CMakeLists.txt | 32 ++++++++++++----------- cmake/FairMQLib.cmake | 14 ++++++++--- cmake/Findasio.cmake | 53 --------------------------------------- extern/asio | 2 +- fairmq/sdk/CMakeLists.txt | 2 +- 6 files changed, 31 insertions(+), 74 deletions(-) delete mode 100644 cmake/Findasio.cmake diff --git a/.gitmodules b/.gitmodules index 448dcc04..3d34647f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,7 +3,7 @@ url = https://github.com/google/googletest [submodule "extern/asio"] path = extern/asio - url = https://github.com/chriskohlhoff/asio + url = https://github.com/FairRootGroup/asio [submodule "extern/PicoSHA2"] path = extern/PicoSHA2 url = https://github.com/okdshin/PicoSHA2 diff --git a/CMakeLists.txt b/CMakeLists.txt index e6e6a5f1..8bcfd631 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,8 +6,8 @@ # copied verbatim in the file "LICENSE" # ################################################################################ -cmake_minimum_required(VERSION 3.12 FATAL_ERROR) -cmake_policy(VERSION 3.12...3.15) +cmake_minimum_required(VERSION 3.14 FATAL_ERROR) +cmake_policy(VERSION 3.14...3.20) # Project ###################################################################### set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) @@ -132,7 +132,7 @@ endif() if(BUILD_SDK) find_package2(BUNDLED asio - VERSION 1.18.0 + VERSION 1.18.1 ) if(NOT asio_FOUND) build_bundled(asio extern/asio) @@ -236,18 +236,18 @@ if(BUILD_DOCS) ) endif() if(BUILD_SDK) - install(FILES cmake/Findasio.cmake - DESTINATION ${PROJECT_INSTALL_CMAKEMODDIR} - ) if(asio_BUNDLED) - install(TARGETS bundled_asio_headers EXPORT ${PROJECT_EXPORT_SET}) - install(DIRECTORY "${asio_BUILD_INCLUDE_DIR}/asio" - DESTINATION ${asio_INSTALL_INCLUDE_DIR} - PATTERN "Makefile.am" EXCLUDE - PATTERN ".gitignore" EXCLUDE + add_library(bundled_asio_headers INTERFACE) + target_include_directories(bundled_asio_headers INTERFACE + $ + $ ) - install(FILES "${asio_BUILD_INCLUDE_DIR}/asio.hpp" - DESTINATION ${asio_INSTALL_INCLUDE_DIR} + install(TARGETS bundled_asio_headers EXPORT ${PROJECT_EXPORT_SET}) + install(DIRECTORY "${asio_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/asio" + DESTINATION ${PROJECT_INSTALL_INCDIR}/bundled + ) + install(FILES "${asio_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/asio.hpp" + DESTINATION ${PROJECT_INSTALL_INCDIR}/bundled ) endif() endif() @@ -336,7 +336,11 @@ if(PROJECT_PACKAGE_DEPENDENCIES) endif() get_filename_component(prefix ${flatbuffers_include}/.. ABSOLUTE) else() - get_filename_component(prefix ${${dep}_INCLUDE_DIR}/.. ABSOLUTE) + if(${dep}_PREFIX) + set(prefix ${${dep}_PREFIX}) + else() + get_filename_component(prefix ${${dep}_INCLUDE_DIR}/.. ABSOLUTE) + endif() endif() if(NOT ${dep}_BUNDLED) message(STATUS " ${BWhite}${dep_padded}${CR}${version_padded}${prefix}") diff --git a/cmake/FairMQLib.cmake b/cmake/FairMQLib.cmake index df4ea15a..23b81cc7 100644 --- a/cmake/FairMQLib.cmake +++ b/cmake/FairMQLib.cmake @@ -291,7 +291,7 @@ if(\"\${CMAKE_MAJOR_VERSION}.\${CMAKE_MINOR_VERSION}\" VERSION_LESS 3.11) message(FATAL_ERROR \"CMake >= 3.11 required\") endif() set_target_properties(${PROJECT_NAME}::bundled_asio_headers PROPERTIES IMPORTED_GLOBAL TRUE) -add_library(asio::headers ALIAS ${PROJECT_NAME}::bundled_asio_headers) +add_library(asio::asio ALIAS ${PROJECT_NAME}::bundled_asio_headers) set(asio_VERSION ${asio_VERSION}) ") @@ -502,9 +502,15 @@ function(build_bundled package bundle) exec(${CMAKE_COMMAND} --build ${${package}_BINARY_DIR}) exec(${CMAKE_COMMAND} --build ${${package}_BINARY_DIR} --target install) elseif(${package} STREQUAL asio) - set(${package}_BUILD_INCLUDE_DIR ${${package}_SOURCE_DIR}/asio/include CACHE PATH "Bundled ${package} build-interface include dir") - set(${package}_INSTALL_INCLUDE_DIR ${PROJECT_INSTALL_INCDIR}/bundled CACHE PATH "Bundled ${package} install-interface include dir") - set(${package}_ROOT ${${package}_SOURCE_DIR}/asio) + set(${package}_INSTALL_DIR ${CMAKE_BINARY_DIR}/${bundle}_install) + file(MAKE_DIRECTORY ${${package}_INSTALL_DIR}) + set(${package}_ROOT ${${package}_INSTALL_DIR}) + + exec(${CMAKE_COMMAND} -S ${${package}_SOURCE_DIR} -B ${${package}_BINARY_DIR} -G ${CMAKE_GENERATOR} + -DCMAKE_INSTALL_PREFIX=${${package}_INSTALL_DIR} + ) + exec(${CMAKE_COMMAND} --build ${${package}_BINARY_DIR}) + exec(${CMAKE_COMMAND} --build ${${package}_BINARY_DIR} --target install) elseif(${package} STREQUAL PicoSHA2) set(${package}_ROOT ${${package}_SOURCE_DIR}) endif() diff --git a/cmake/Findasio.cmake b/cmake/Findasio.cmake deleted file mode 100644 index b68c3252..00000000 --- a/cmake/Findasio.cmake +++ /dev/null @@ -1,53 +0,0 @@ -################################################################################ -# Copyright (C) 2019 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" # -################################################################################ - -find_path(asio_INCLUDE_DIR - NAMES asio.hpp - PATH_SUFFIXES include -) - -if(asio_INCLUDE_DIR) - find_file(asio_VERSION_HEADER "asio/version.hpp" - ${asio_INCLUDE_DIR} - NO_DEFAULT_PATH - ) -endif() - -if(asio_VERSION_HEADER) - file(READ "${asio_VERSION_HEADER}" _asio_VERSION_HEADER_CONTENT) - string(REGEX MATCH "#define ASIO_VERSION ([0-9]+)" _MATCH "${_asio_VERSION_HEADER_CONTENT}") - set(asio_VERSION_MACRO ${CMAKE_MATCH_1}) - math(EXPR asio_VERSION_MAJOR "${asio_VERSION_MACRO} / 100000") - math(EXPR asio_VERSION_MINOR "${asio_VERSION_MACRO} / 100 % 1000") - math(EXPR asio_VERSION_PATCH "${asio_VERSION_MACRO} % 100") - set(asio_VERSION "${asio_VERSION_MAJOR}.${asio_VERSION_MINOR}.${asio_VERSION_PATCH}") -endif() - - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(asio - REQUIRED_VARS asio_INCLUDE_DIR - VERSION_VAR asio_VERSION - HANDLE_COMPONENTS -) - -if(asio_FOUND AND asio_BUNDLED) - add_library(bundled_asio_headers INTERFACE) - target_include_directories(bundled_asio_headers INTERFACE - $ - $ - ) - add_library(asio::headers ALIAS bundled_asio_headers) -endif() -if(asio_FOUND AND NOT TARGET asio::headers) - add_library(asio::headers INTERFACE IMPORTED) - set_target_properties(asio::headers PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${asio_INCLUDE_DIR}" - ) -endif() - diff --git a/extern/asio b/extern/asio index be7badc3..fdabf904 160000 --- a/extern/asio +++ b/extern/asio @@ -1 +1 @@ -Subproject commit be7badc31abcc395cf868de6a1e240c2350bdbf2 +Subproject commit fdabf904b0a54222dbc907520a0c1581f54c4173 diff --git a/fairmq/sdk/CMakeLists.txt b/fairmq/sdk/CMakeLists.txt index 97393bf4..5e6b6315 100644 --- a/fairmq/sdk/CMakeLists.txt +++ b/fairmq/sdk/CMakeLists.txt @@ -54,7 +54,7 @@ target_include_directories(${target} ) target_link_libraries(${target} PUBLIC - asio::headers + asio::asio Boost::boost Boost::filesystem FairLogger::FairLogger