diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 18:24:20 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 18:24:20 +0000 |
commit | 483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch) | |
tree | e5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /src/boost/tools/boost_install/BoostConfig.cmake | |
parent | Initial commit. (diff) | |
download | ceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.tar.xz ceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.zip |
Adding upstream version 14.2.21.upstream/14.2.21upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/tools/boost_install/BoostConfig.cmake')
-rw-r--r-- | src/boost/tools/boost_install/BoostConfig.cmake | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/src/boost/tools/boost_install/BoostConfig.cmake b/src/boost/tools/boost_install/BoostConfig.cmake new file mode 100644 index 00000000..f6714f6e --- /dev/null +++ b/src/boost/tools/boost_install/BoostConfig.cmake @@ -0,0 +1,201 @@ +# Copyright 2019 Peter Dimov +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) + +# This CMake configuration file, installed as part of the Boost build +# and installation procedure done by `b2 install`, provides support +# for find_package(Boost). +# +# It's roughly, but not perfectly, compatible with the behavior +# of find_package(Boost) as provided by FindBoost.cmake. +# +# A typical use might be +# +# find_package(Boost 1.70 REQUIRED COMPONENTS filesystem regex PATHS C:/Boost) +# +# On success, the above invocation would define the targets Boost::headers, +# Boost::filesystem and Boost::regex. Boost::headers represents all +# header-only libraries. An alias, Boost::boost, for Boost::headers is +# provided for compatibility. +# +# Since Boost libraries can coexist in many variants - 32/64 bit, +# static/dynamic runtime, debug/release, the following variables can be used +# to control which variant is chosen: +# +# Boost_USE_DEBUG_LIBS: When OFF, disables debug libraries. +# Boost_USE_RELEASE_LIBS: When OFF, disables release libraries. +# Boost_USE_MULTITHREADED: When ON, uses multithreaded Boost libraries. +# When OFF, uses single-threaded libraries. +# The default is to use either. +# Boost_USE_STATIC_LIBS: When ON, uses static Boost libraries; when OFF, +# uses shared Boost libraries; when not set, uses +# static on Windows, shared otherwise. +# Boost_USE_STATIC_RUNTIME: When ON, uses Boost libraries linked against the +# static runtime. The default is shared runtime. +# Boost_USE_DEBUG_RUNTIME: When ON, uses Boost libraries linked against the +# debug runtime. When OFF, against the release +# runtime. The default is to use either. +# Boost_COMPILER: The compiler that has been used to build Boost, +# such as vc141, gcc7, clang37. The default is +# determined from CMAKE_CXX_COMPILER_ID. +# Boost_PYTHON_VERSION: The version of Python against which Boost.Python +# has been built; only required when more than one +# Boost.Python library is present. +# +# The following variables control the verbosity of the output: +# +# Boost_VERBOSE: Enable verbose output +# Boost_DEBUG: Enable debug (even more verbose) output + +if(Boost_VERBOSE OR Boost_DEBUG) + + message(STATUS "Found Boost ${Boost_VERSION} at ${Boost_DIR}") + + # Output requested configuration (f.ex. "REQUIRED COMPONENTS filesystem") + + if(Boost_FIND_QUIETLY) + set(_BOOST_CONFIG "${_BOOST_CONFIG} QUIET") + endif() + + if(Boost_FIND_REQUIRED) + set(_BOOST_CONFIG "${_BOOST_CONFIG} REQUIRED") + endif() + + foreach(__boost_comp IN LISTS Boost_FIND_COMPONENTS) + if(${Boost_FIND_REQUIRED_${__boost_comp}}) + list(APPEND _BOOST_COMPONENTS ${__boost_comp}) + else() + list(APPEND _BOOST_OPTIONAL_COMPONENTS ${__boost_comp}) + endif() + endforeach() + + if(_BOOST_COMPONENTS) + set(_BOOST_CONFIG "${_BOOST_CONFIG} COMPONENTS ${_BOOST_COMPONENTS}") + endif() + + if(_BOOST_OPTIONAL_COMPONENTS) + set(_BOOST_CONFIG "${_BOOST_CONFIG} OPTIONAL_COMPONENTS ${_BOOST_OPTIONAL_COMPONENTS}") + endif() + + if(_BOOST_CONFIG) + message(STATUS " Requested configuration:${_BOOST_CONFIG}") + endif() + + unset(_BOOST_CONFIG) + unset(_BOOST_COMPONENTS) + unset(_BOOST_OPTIONAL_COMPONENTS) + +endif() + +macro(boost_find_component comp req) + + set(_BOOST_QUIET) + if(Boost_FIND_QUIETLY) + set(_BOOST_QUIET QUIET) + endif() + + set(_BOOST_REQUIRED) + if(${req} AND Boost_FIND_REQUIRED) + set(_BOOST_REQUIRED REQUIRED) + endif() + + if("${comp}" MATCHES "^(python|numpy|mpi_python)([1-9])([0-9])$") + + # handle pythonXY and numpyXY versioned components for compatibility + + set(Boost_PYTHON_VERSION "${CMAKE_MATCH_2}.${CMAKE_MATCH_3}") + set(__boost_comp_nv "${CMAKE_MATCH_1}") + + else() + + set(__boost_comp_nv "${comp}") + + endif() + + get_filename_component(_BOOST_CMAKEDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) + + if(Boost_DEBUG) + message(STATUS "BoostConfig: find_package(boost_${__boost_comp_nv} ${Boost_VERSION} EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR})") + endif() + find_package(boost_${__boost_comp_nv} ${Boost_VERSION} EXACT CONFIG ${_BOOST_REQUIRED} ${_BOOST_QUIET} HINTS ${_BOOST_CMAKEDIR}) + + set(__boost_comp_found ${boost_${__boost_comp_nv}_FOUND}) + + # FindPackageHandleStandardArgs expects <package>_<component>_FOUND + set(Boost_${comp}_FOUND ${__boost_comp_found}) + + # FindBoost sets Boost_<COMPONENT>_FOUND + string(TOUPPER ${comp} _BOOST_COMP) + set(Boost_${_BOOST_COMP}_FOUND ${__boost_comp_found}) + + # FindBoost compatibility variables: Boost_LIBRARIES, Boost_<C>_LIBRARY + if(__boost_comp_found) + + list(APPEND Boost_LIBRARIES Boost::${__boost_comp_nv}) + set(Boost_${_BOOST_COMP}_LIBRARY Boost::${__boost_comp_nv}) + + if(NOT "${comp}" STREQUAL "${__boost_comp_nv}" AND NOT TARGET Boost::${comp}) + + # Versioned target alias (f.ex. Boost::python27) for compatibility + add_library(Boost::${comp} INTERFACE IMPORTED) + set_property(TARGET Boost::${comp} APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::${__boost_comp_nv}) + + endif() + + endif() + + unset(_BOOST_REQUIRED) + unset(_BOOST_QUIET) + unset(_BOOST_CMAKEDIR) + unset(__boost_comp_nv) + unset(__boost_comp_found) + unset(_BOOST_COMP) + +endmacro() + +# Find boost_headers + +boost_find_component(headers 1) + +if(NOT boost_headers_FOUND) + + set(Boost_FOUND 0) + set(Boost_NOT_FOUND_MESSAGE "A required dependency, boost_headers, has not been found.") + + return() + +endif() + +# Compatibility variables + +set(Boost_MAJOR_VERSION ${Boost_VERSION_MAJOR}) +set(Boost_MINOR_VERSION ${Boost_VERSION_MINOR}) +set(Boost_SUBMINOR_VERSION ${Boost_VERSION_PATCH}) + +set(Boost_VERSION_STRING ${Boost_VERSION}) +set(Boost_VERSION_MACRO ${Boost_VERSION_MAJOR}0${Boost_VERSION_MINOR}0${Boost_VERSION_PATCH}) + +get_target_property(Boost_INCLUDE_DIRS Boost::headers INTERFACE_INCLUDE_DIRECTORIES) +set(Boost_LIBRARIES "") + +# Find components + +foreach(__boost_comp IN LISTS Boost_FIND_COMPONENTS) + + boost_find_component(${__boost_comp} ${Boost_FIND_REQUIRED_${__boost_comp}}) + +endforeach() + +# Compatibility targets + +if(NOT TARGET Boost::boost) + + add_library(Boost::boost INTERFACE IMPORTED) + set_property(TARGET Boost::boost APPEND PROPERTY INTERFACE_LINK_LIBRARIES Boost::headers) + + # All Boost:: targets already disable autolink + add_library(Boost::diagnostic_definitions INTERFACE IMPORTED) + add_library(Boost::disable_autolinking INTERFACE IMPORTED) + add_library(Boost::dynamic_linking INTERFACE IMPORTED) + +endif() |