cmake: update FindBoost.cmake

FreeBSD is moving to Boost 1.70
we should allow user to use boost 1.70.

Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
This commit is contained in:
Willem Jan Withagen 2019-07-30 16:00:04 +02:00
parent 475159ec73
commit fdc0e2baeb

View File

@ -1,245 +1,252 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details. # file Copyright.txt or https://cmake.org/licensing for details.
#.rst: #[=======================================================================[.rst:
# FindBoost FindBoost
# --------- ---------
#
# Find Boost include dirs and libraries Find Boost include dirs and libraries
#
# Use this module by invoking find_package with the form:: Use this module by invoking find_package with the form::
#
# find_package(Boost find_package(Boost
# [version] [EXACT] # Minimum or EXACT version e.g. 1.67.0 [version] [EXACT] # Minimum or EXACT version e.g. 1.67.0
# [REQUIRED] # Fail with error if Boost is not found [REQUIRED] # Fail with error if Boost is not found
# [COMPONENTS <libs>...] # Boost libraries by their canonical name [COMPONENTS <libs>...] # Boost libraries by their canonical name
# # e.g. "date_time" for "libboost_date_time" # e.g. "date_time" for "libboost_date_time"
# [OPTIONAL_COMPONENTS <libs>...] [OPTIONAL_COMPONENTS <libs>...]
# # Optional Boost libraries by their canonical name) # Optional Boost libraries by their canonical name)
# ) # e.g. "date_time" for "libboost_date_time" ) # e.g. "date_time" for "libboost_date_time"
#
# This module finds headers and requested component libraries OR a CMake This module finds headers and requested component libraries OR a CMake
# package configuration file provided by a "Boost CMake" build. For the package configuration file provided by a "Boost CMake" build. For the
# latter case skip to the "Boost CMake" section below. For the former latter case skip to the "Boost CMake" section below. For the former
# case results are reported in variables:: case results are reported in variables::
#
# Boost_FOUND - True if headers and requested libraries were found Boost_FOUND - True if headers and requested libraries were found
# Boost_INCLUDE_DIRS - Boost include directories Boost_INCLUDE_DIRS - Boost include directories
# Boost_LIBRARY_DIRS - Link directories for Boost libraries Boost_LIBRARY_DIRS - Link directories for Boost libraries
# Boost_LIBRARIES - Boost component libraries to be linked Boost_LIBRARIES - Boost component libraries to be linked
# Boost_<C>_FOUND - True if component <C> was found (<C> is upper-case) Boost_<C>_FOUND - True if component <C> was found (<C> is upper-case)
# Boost_<C>_LIBRARY - Libraries to link for component <C> (may include Boost_<C>_LIBRARY - Libraries to link for component <C> (may include
# target_link_libraries debug/optimized keywords) target_link_libraries debug/optimized keywords)
# Boost_VERSION - BOOST_VERSION value from boost/version.hpp Boost_VERSION - BOOST_VERSION value from boost/version.hpp
# Boost_LIB_VERSION - Version string appended to library filenames Boost_LIB_VERSION - Version string appended to library filenames
# Boost_MAJOR_VERSION - Boost major version number (X in X.y.z) Boost_MAJOR_VERSION - Boost major version number (X in X.y.z)
# Boost_MINOR_VERSION - Boost minor version number (Y in x.Y.z) Boost_MINOR_VERSION - Boost minor version number (Y in x.Y.z)
# Boost_SUBMINOR_VERSION - Boost subminor version number (Z in x.y.Z) Boost_SUBMINOR_VERSION - Boost subminor version number (Z in x.y.Z)
# Boost_LIB_DIAGNOSTIC_DEFINITIONS (Windows) Boost_VERSION_STRING - Boost version number in x.y.z format
# - Pass to add_definitions() to have diagnostic Boost_LIB_DIAGNOSTIC_DEFINITIONS (Windows)
# information about Boost's automatic linking - Pass to add_definitions() to have diagnostic
# displayed during compilation information about Boost's automatic linking
# displayed during compilation
# Note that Boost Python components require a Python version suffix
# (Boost 1.67 and later), e.g. ``python36`` or ``python27`` for the Note that Boost Python components require a Python version suffix
# versions built against Python 3.6 and 2.7, respectively. This also (Boost 1.67 and later), e.g. ``python36`` or ``python27`` for the
# applies to additional components using Python including versions built against Python 3.6 and 2.7, respectively. This also
# ``mpi_python`` and ``numpy``. Earlier Boost releases may use applies to additional components using Python including
# distribution-specific suffixes such as ``2``, ``3`` or ``2.7``. ``mpi_python`` and ``numpy``. Earlier Boost releases may use
# These may also be used as suffixes, but note that they are not distribution-specific suffixes such as ``2``, ``3`` or ``2.7``.
# portable. These may also be used as suffixes, but note that they are not
# portable.
# This module reads hints about search locations from variables::
# This module reads hints about search locations from variables::
# BOOST_ROOT - Preferred installation prefix
# (or BOOSTROOT) BOOST_ROOT - Preferred installation prefix
# BOOST_INCLUDEDIR - Preferred include directory e.g. <prefix>/include (or BOOSTROOT)
# BOOST_LIBRARYDIR - Preferred library directory e.g. <prefix>/lib BOOST_INCLUDEDIR - Preferred include directory e.g. <prefix>/include
# Boost_NO_SYSTEM_PATHS - Set to ON to disable searching in locations not BOOST_LIBRARYDIR - Preferred library directory e.g. <prefix>/lib
# specified by these hint variables. Default is OFF. BOOST_PYTHON_SUFFIX - Preferred Python version
# Boost_ADDITIONAL_VERSIONS
# - List of Boost versions not known to this module Boost_NO_SYSTEM_PATHS - Set to ON to disable searching in locations not
# (Boost install locations may contain the version) specified by these hint variables. Default is OFF.
# Boost_ADDITIONAL_VERSIONS
# and saves search results persistently in CMake cache entries:: - List of Boost versions not known to this module
# (Boost install locations may contain the version)
# Boost_INCLUDE_DIR - Directory containing Boost headers
# Boost_LIBRARY_DIR_RELEASE - Directory containing release Boost libraries and saves search results persistently in CMake cache entries::
# Boost_LIBRARY_DIR_DEBUG - Directory containing debug Boost libraries
# Boost_<C>_LIBRARY_DEBUG - Component <C> library debug variant Boost_INCLUDE_DIR - Directory containing Boost headers
# Boost_<C>_LIBRARY_RELEASE - Component <C> library release variant Boost_LIBRARY_DIR_RELEASE - Directory containing release Boost libraries
# Boost_LIBRARY_DIR_DEBUG - Directory containing debug Boost libraries
# The following :prop_tgt:`IMPORTED` targets are also defined:: Boost_<C>_LIBRARY_DEBUG - Component <C> library debug variant
# Boost_<C>_LIBRARY_RELEASE - Component <C> library release variant
# Boost::boost - Target for header-only dependencies
# (Boost include directory) The following :prop_tgt:`IMPORTED` targets are also defined::
# Boost::<C> - Target for specific component dependency
# (shared or static library); <C> is lower- Boost::boost - Target for header-only dependencies
# case (Boost include directory)
# Boost::diagnostic_definitions - interface target to enable diagnostic Boost::<C> - Target for specific component dependency
# information about Boost's automatic linking (shared or static library); <C> is lower-
# during compilation (adds BOOST_LIB_DIAGNOSTIC) case
# Boost::disable_autolinking - interface target to disable automatic Boost::diagnostic_definitions - interface target to enable diagnostic
# linking with MSVC (adds BOOST_ALL_NO_LIB) information about Boost's automatic linking
# Boost::dynamic_linking - interface target to enable dynamic linking during compilation (adds BOOST_LIB_DIAGNOSTIC)
# linking with MSVC (adds BOOST_ALL_DYN_LINK) Boost::disable_autolinking - interface target to disable automatic
# linking with MSVC (adds BOOST_ALL_NO_LIB)
# Implicit dependencies such as Boost::filesystem requiring Boost::dynamic_linking - interface target to enable dynamic linking
# Boost::system will be automatically detected and satisfied, even linking with MSVC (adds BOOST_ALL_DYN_LINK)
# if system is not specified when using find_package and if
# Boost::system is not added to target_link_libraries. If using Implicit dependencies such as Boost::filesystem requiring
# Boost::thread, then Threads::Threads will also be added automatically. Boost::system will be automatically detected and satisfied, even
# if system is not specified when using find_package and if
# It is important to note that the imported targets behave differently Boost::system is not added to target_link_libraries. If using
# than variables created by this module: multiple calls to Boost::thread, then Threads::Threads will also be added automatically.
# find_package(Boost) in the same directory or sub-directories with
# different options (e.g. static or shared) will not override the It is important to note that the imported targets behave differently
# values of the targets created by the first call. than variables created by this module: multiple calls to
# find_package(Boost) in the same directory or sub-directories with
# Users may set these hints or results as cache entries. Projects different options (e.g. static or shared) will not override the
# should not read these entries directly but instead use the above values of the targets created by the first call.
# result variables. Note that some hint names start in upper-case
# "BOOST". One may specify these as environment variables if they are Users may set these hints or results as cache entries. Projects
# not specified as CMake variables or cache entries. should not read these entries directly but instead use the above
# result variables. Note that some hint names start in upper-case
# This module first searches for the Boost header files using the above "BOOST". One may specify these as environment variables if they are
# hint variables (excluding BOOST_LIBRARYDIR) and saves the result in not specified as CMake variables or cache entries.
# Boost_INCLUDE_DIR. Then it searches for requested component libraries
# using the above hints (excluding BOOST_INCLUDEDIR and This module first searches for the Boost header files using the above
# Boost_ADDITIONAL_VERSIONS), "lib" directories near Boost_INCLUDE_DIR, hint variables (excluding BOOST_LIBRARYDIR) and saves the result in
# and the library name configuration settings below. It saves the Boost_INCLUDE_DIR. Then it searches for requested component libraries
# library directories in Boost_LIBRARY_DIR_DEBUG and using the above hints (excluding BOOST_INCLUDEDIR and
# Boost_LIBRARY_DIR_RELEASE and individual library Boost_ADDITIONAL_VERSIONS), "lib" directories near Boost_INCLUDE_DIR,
# locations in Boost_<C>_LIBRARY_DEBUG and Boost_<C>_LIBRARY_RELEASE. and the library name configuration settings below. It saves the
# When one changes settings used by previous searches in the same build library directories in Boost_LIBRARY_DIR_DEBUG and
# tree (excluding environment variables) this module discards previous Boost_LIBRARY_DIR_RELEASE and individual library
# search results affected by the changes and searches again. locations in Boost_<C>_LIBRARY_DEBUG and Boost_<C>_LIBRARY_RELEASE.
# When one changes settings used by previous searches in the same build
# Boost libraries come in many variants encoded in their file name. tree (excluding environment variables) this module discards previous
# Users or projects may tell this module which variant to find by search results affected by the changes and searches again.
# setting variables::
# Boost libraries come in many variants encoded in their file name.
# Boost_USE_DEBUG_LIBS - Set to ON or OFF to specify whether to search Users or projects may tell this module which variant to find by
# and use the debug libraries. Default is ON. setting variables::
# Boost_USE_RELEASE_LIBS - Set to ON or OFF to specify whether to search
# and use the release libraries. Default is ON. Boost_USE_DEBUG_LIBS - Set to ON or OFF to specify whether to search
# Boost_USE_MULTITHREADED - Set to OFF to use the non-multithreaded and use the debug libraries. Default is ON.
# libraries ('mt' tag). Default is ON. Boost_USE_RELEASE_LIBS - Set to ON or OFF to specify whether to search
# Boost_USE_STATIC_LIBS - Set to ON to force the use of the static and use the release libraries. Default is ON.
# libraries. Default is OFF. Boost_USE_MULTITHREADED - Set to OFF to use the non-multithreaded
# Boost_USE_STATIC_RUNTIME - Set to ON or OFF to specify whether to use libraries ('mt' tag). Default is ON.
# libraries linked statically to the C++ runtime Boost_USE_STATIC_LIBS - Set to ON to force the use of the static
# ('s' tag). Default is platform dependent. libraries. Default is OFF.
# Boost_USE_DEBUG_RUNTIME - Set to ON or OFF to specify whether to use Boost_USE_STATIC_RUNTIME - Set to ON or OFF to specify whether to use
# libraries linked to the MS debug C++ runtime libraries linked statically to the C++ runtime
# ('g' tag). Default is ON. ('s' tag). Default is platform dependent.
# Boost_USE_DEBUG_PYTHON - Set to ON to use libraries compiled with a Boost_USE_DEBUG_RUNTIME - Set to ON or OFF to specify whether to use
# debug Python build ('y' tag). Default is OFF. libraries linked to the MS debug C++ runtime
# Boost_USE_STLPORT - Set to ON to use libraries compiled with ('g' tag). Default is ON.
# STLPort ('p' tag). Default is OFF. Boost_USE_DEBUG_PYTHON - Set to ON to use libraries compiled with a
# Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS debug Python build ('y' tag). Default is OFF.
# - Set to ON to use libraries compiled with Boost_USE_STLPORT - Set to ON to use libraries compiled with
# STLPort deprecated "native iostreams" STLPort ('p' tag). Default is OFF.
# ('n' tag). Default is OFF. Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS
# Boost_COMPILER - Set to the compiler-specific library suffix - Set to ON to use libraries compiled with
# (e.g. "-gcc43"). Default is auto-computed STLPort deprecated "native iostreams"
# for the C++ compiler in use. A list may be ('n' tag). Default is OFF.
# used if multiple compatible suffixes should Boost_COMPILER - Set to the compiler-specific library suffix
# be tested for, in decreasing order of (e.g. "-gcc43"). Default is auto-computed
# preference. for the C++ compiler in use. A list may be
# Boost_ARCHITECTURE - Set to the architecture-specific library suffix used if multiple compatible suffixes should
# (e.g. "-x64"). Default is auto-computed for the be tested for, in decreasing order of
# C++ compiler in use. preference.
# Boost_THREADAPI - Suffix for "thread" component library name, Boost_ARCHITECTURE - Set to the architecture-specific library suffix
# such as "pthread" or "win32". Names with (e.g. "-x64"). Default is auto-computed for the
# and without this suffix will both be tried. C++ compiler in use.
# Boost_NAMESPACE - Alternate namespace used to build boost with Boost_THREADAPI - Suffix for "thread" component library name,
# e.g. if set to "myboost", will search for such as "pthread" or "win32". Names with
# myboost_thread instead of boost_thread. and without this suffix will both be tried.
# Boost_NAMESPACE - Alternate namespace used to build boost with
# Other variables one may set to control this module are:: e.g. if set to "myboost", will search for
# myboost_thread instead of boost_thread.
# Boost_DEBUG - Set to ON to enable debug output from FindBoost.
# Please enable this before filing any bug report. Other variables one may set to control this module are::
# Boost_DETAILED_FAILURE_MSG
# - Set to ON to add detailed information to the Boost_DEBUG - Set to ON to enable debug output from FindBoost.
# failure message even when the REQUIRED option Please enable this before filing any bug report.
# is not given to the find_package call. Boost_DETAILED_FAILURE_MSG
# Boost_REALPATH - Set to ON to resolve symlinks for discovered - Set to ON to add detailed information to the
# libraries to assist with packaging. For example, failure message even when the REQUIRED option
# the "system" component library may be resolved to is not given to the find_package call.
# "/usr/lib/libboost_system.so.1.67.0" instead of Boost_REALPATH - Set to ON to resolve symlinks for discovered
# "/usr/lib/libboost_system.so". This does not libraries to assist with packaging. For example,
# affect linking and should not be enabled unless the "system" component library may be resolved to
# the user needs this information. "/usr/lib/libboost_system.so.1.67.0" instead of
# Boost_LIBRARY_DIR - Default value for Boost_LIBRARY_DIR_RELEASE and "/usr/lib/libboost_system.so". This does not
# Boost_LIBRARY_DIR_DEBUG. affect linking and should not be enabled unless
# the user needs this information.
# On Visual Studio and Borland compilers Boost headers request automatic Boost_LIBRARY_DIR - Default value for Boost_LIBRARY_DIR_RELEASE and
# linking to corresponding libraries. This requires matching libraries Boost_LIBRARY_DIR_DEBUG.
# to be linked explicitly or available in the link library search path.
# In this case setting Boost_USE_STATIC_LIBS to OFF may not achieve On Visual Studio and Borland compilers Boost headers request automatic
# dynamic linking. Boost automatic linking typically requests static linking to corresponding libraries. This requires matching libraries
# libraries with a few exceptions (such as Boost.Python). Use:: to be linked explicitly or available in the link library search path.
# In this case setting Boost_USE_STATIC_LIBS to OFF may not achieve
# add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS}) dynamic linking. Boost automatic linking typically requests static
# libraries with a few exceptions (such as Boost.Python). Use::
# to ask Boost to report information about automatic linking requests.
# add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS})
# Example to find Boost headers only::
# to ask Boost to report information about automatic linking requests.
# find_package(Boost 1.36.0)
# if(Boost_FOUND) Example to find Boost headers only::
# include_directories(${Boost_INCLUDE_DIRS})
# add_executable(foo foo.cc) find_package(Boost 1.36.0)
# endif() if(Boost_FOUND)
# include_directories(${Boost_INCLUDE_DIRS})
# Example to find Boost libraries and use imported targets:: add_executable(foo foo.cc)
# endif()
# find_package(Boost 1.56 REQUIRED COMPONENTS
# date_time filesystem iostreams) Example to find Boost libraries and use imported targets::
# add_executable(foo foo.cc)
# target_link_libraries(foo Boost::date_time Boost::filesystem find_package(Boost 1.56 REQUIRED COMPONENTS
# Boost::iostreams) date_time filesystem iostreams)
# add_executable(foo foo.cc)
# Example to find Boost Python 3.6 libraries and use imported targets:: target_link_libraries(foo Boost::date_time Boost::filesystem
# Boost::iostreams)
# find_package(Boost 1.67 REQUIRED COMPONENTS
# python36 numpy36) Example to find Boost Python 3.6 libraries and use imported targets::
# add_executable(foo foo.cc)
# target_link_libraries(foo Boost::python36 Boost::numpy36) find_package(Boost 1.67 REQUIRED COMPONENTS
# python36 numpy36)
# Example to find Boost headers and some *static* (release only) libraries:: add_executable(foo foo.cc)
# target_link_libraries(foo Boost::python36 Boost::numpy36)
# set(Boost_USE_STATIC_LIBS ON) # only find static libs
# set(Boost_USE_DEBUG_LIBS OFF) # ignore debug libs and Example to find Boost headers and some *static* (release only) libraries::
# set(Boost_USE_RELEASE_LIBS ON) # only find release libs
# set(Boost_USE_MULTITHREADED ON) set(Boost_USE_STATIC_LIBS ON) # only find static libs
# set(Boost_USE_STATIC_RUNTIME OFF) set(Boost_USE_DEBUG_LIBS OFF) # ignore debug libs and
# find_package(Boost 1.66.0 COMPONENTS date_time filesystem system ...) set(Boost_USE_RELEASE_LIBS ON) # only find release libs
# if(Boost_FOUND) set(Boost_USE_MULTITHREADED ON)
# include_directories(${Boost_INCLUDE_DIRS}) set(Boost_USE_STATIC_RUNTIME OFF)
# add_executable(foo foo.cc) find_package(Boost 1.66.0 COMPONENTS date_time filesystem system ...)
# target_link_libraries(foo ${Boost_LIBRARIES}) if(Boost_FOUND)
# endif() include_directories(${Boost_INCLUDE_DIRS})
# add_executable(foo foo.cc)
# Boost CMake target_link_libraries(foo ${Boost_LIBRARIES})
# ^^^^^^^^^^^ endif()
#
# If Boost was built using the boost-cmake project it provides a package Boost CMake
# configuration file for use with find_package's Config mode. This ^^^^^^^^^^^
# module looks for the package configuration file called
# BoostConfig.cmake or boost-config.cmake and stores the result in cache If Boost was built using the boost-cmake project it provides a package
# entry "Boost_DIR". If found, the package configuration file is loaded configuration file for use with find_package's Config mode. This
# and this module returns with no further action. See documentation of module looks for the package configuration file called
# the Boost CMake package configuration for details on what it provides. BoostConfig.cmake or boost-config.cmake and stores the result in cache
# entry "Boost_DIR". If found, the package configuration file is loaded
# Set Boost_NO_BOOST_CMAKE to ON to disable the search for boost-cmake. and this module returns with no further action. See documentation of
the Boost CMake package configuration for details on what it provides.
Set Boost_NO_BOOST_CMAKE to ON to disable the search for boost-cmake.
#]=======================================================================]
# Save project's policies # Save project's policies
cmake_policy(PUSH) cmake_policy(PUSH)
cmake_policy(SET CMP0057 NEW) # if IN_LIST cmake_policy(SET CMP0057 NEW) # if IN_LIST
# https://gitlab.kitware.com/cmake/cmake/issues/18865
set(Boost_NO_BOOST_CMAKE ON CACHE BOOL "Disable the search for boost-cmake")
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
# Before we go searching, check whether boost-cmake is available, unless the # Before we go searching, check whether boost-cmake is available, unless the
# user specifically asked NOT to search for boost-cmake. # user specifically asked NOT to search for boost-cmake.
@ -464,8 +471,17 @@ function(_Boost_GUESS_COMPILER_PREFIX _ret)
elseif (GHSMULTI) elseif (GHSMULTI)
set(_boost_COMPILER "-ghs") set(_boost_COMPILER "-ghs")
elseif("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC") elseif("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC")
if(MSVC_TOOLSET_VERSION GREATER_EQUAL 141) if(MSVC_TOOLSET_VERSION GREATER_EQUAL 150)
set(_boost_COMPILER "-vc141;-vc140") # Not yet known.
set(_boost_COMPILER "")
elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 140)
# MSVC toolset 14.x versions are forward compatible.
set(_boost_COMPILER "")
foreach(v 9 8 7 6 5 4 3 2 1 0)
if(MSVC_TOOLSET_VERSION GREATER_EQUAL 14${v})
list(APPEND _boost_COMPILER "-vc14${v}")
endif()
endforeach()
elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 80) elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 80)
set(_boost_COMPILER "-vc${MSVC_TOOLSET_VERSION}") set(_boost_COMPILER "-vc${MSVC_TOOLSET_VERSION}")
elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.10) elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.10)
@ -860,8 +876,22 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
set(_Boost_TIMER_DEPENDENCIES chrono system) set(_Boost_TIMER_DEPENDENCIES chrono system)
set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic) set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
set(_Boost_WSERIALIZATION_DEPENDENCIES serialization) set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
elseif(NOT Boost_VERSION VERSION_LESS 106900 AND Boost_VERSION VERSION_LESS 107000)
set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time)
set(_Boost_COROUTINE_DEPENDENCIES context)
set(_Boost_FIBER_DEPENDENCIES context)
set(_Boost_IOSTREAMS_DEPENDENCIES regex)
set(_Boost_LOG_DEPENDENCIES date_time log_setup filesystem thread regex chrono atomic)
set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic)
set(_Boost_MPI_DEPENDENCIES serialization)
set(_Boost_MPI_PYTHON_DEPENDENCIES python${component_python_version} mpi serialization)
set(_Boost_NUMPY_DEPENDENCIES python${component_python_version})
set(_Boost_THREAD_DEPENDENCIES chrono date_time atomic)
set(_Boost_TIMER_DEPENDENCIES chrono system)
set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
else() else()
if(NOT Boost_VERSION VERSION_LESS 106900) if(NOT Boost_VERSION VERSION_LESS 107000)
set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time) set(_Boost_CONTRACT_DEPENDENCIES thread chrono date_time)
set(_Boost_COROUTINE_DEPENDENCIES context) set(_Boost_COROUTINE_DEPENDENCIES context)
set(_Boost_FIBER_DEPENDENCIES context) set(_Boost_FIBER_DEPENDENCIES context)
@ -876,7 +906,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic) set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono date_time atomic)
set(_Boost_WSERIALIZATION_DEPENDENCIES serialization) set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
endif() endif()
if(NOT Boost_VERSION VERSION_LESS 107000) if(NOT Boost_VERSION VERSION_LESS 107100)
message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets") message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets")
endif() endif()
endif() endif()
@ -1023,11 +1053,17 @@ endfunction()
# Some boost libraries may require particular set of compler features. # Some boost libraries may require particular set of compler features.
# The very first one was `boost::fiber` introduced in Boost 1.62. # The very first one was `boost::fiber` introduced in Boost 1.62.
# One can check required compiler features of it in # One can check required compiler features of it in
# `${Boost_ROOT}/libs/fiber/build/Jamfile.v2`. # - `${Boost_ROOT}/libs/fiber/build/Jamfile.v2`;
# - `${Boost_ROOT}/libs/context/build/Jamfile.v2`.
#
# TODO (Re)Check compiler features on (every?) release ???
# One may use the following command to get the files to check:
#
# $ find . -name Jamfile.v2 | grep build | xargs grep -l cxx1
# #
function(_Boost_COMPILER_FEATURES component _ret) function(_Boost_COMPILER_FEATURES component _ret)
# Boost >= 1.62 and < 1.67 # Boost >= 1.62
if(NOT Boost_VERSION VERSION_LESS 106200 AND Boost_VERSION VERSION_LESS 106700) if(NOT Boost_VERSION VERSION_LESS 106200)
set(_Boost_FIBER_COMPILER_FEATURES set(_Boost_FIBER_COMPILER_FEATURES
cxx_alias_templates cxx_alias_templates
cxx_auto_type cxx_auto_type
@ -1041,7 +1077,19 @@ function(_Boost_COMPILER_FEATURES component _ret)
cxx_thread_local cxx_thread_local
cxx_variadic_templates cxx_variadic_templates
) )
# Compiler feature for `context` same as for `fiber`.
set(_Boost_CONTEXT_COMPILER_FEATURES ${_Boost_FIBER_COMPILER_FEATURES})
endif() endif()
# Boost Contract library available in >= 1.67
if(NOT Boost_VERSION_STRING VERSION_LESS 1.67.0)
# From `libs/contract/build/boost_contract_build.jam`
set(_Boost_CONTRACT_COMPILER_FEATURES
cxx_lambdas
cxx_variadic_templates
)
endif()
string(TOUPPER ${component} uppercomponent) string(TOUPPER ${component} uppercomponent)
set(${_ret} ${_Boost_${uppercomponent}_COMPILER_FEATURES} PARENT_SCOPE) set(${_ret} ${_Boost_${uppercomponent}_COMPILER_FEATURES} PARENT_SCOPE)
endfunction() endfunction()
@ -1061,9 +1109,15 @@ function(_Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS component
else() else()
set(_arch_suffix 32) set(_arch_suffix 32)
endif() endif()
if(MSVC_TOOLSET_VERSION GREATER_EQUAL 141) if(MSVC_TOOLSET_VERSION GREATER_EQUAL 150)
list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-14.1) # Not yet known.
list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-14.0) elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 140)
# MSVC toolset 14.x versions are forward compatible.
foreach(v 9 8 7 6 5 4 3 2 1 0)
if(MSVC_TOOLSET_VERSION GREATER_EQUAL 14${v})
list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-14.${v})
endif()
endforeach()
elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 80) elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 80)
math(EXPR _toolset_major_version "${MSVC_TOOLSET_VERSION} / 10") math(EXPR _toolset_major_version "${MSVC_TOOLSET_VERSION} / 10")
list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-${_toolset_major_version}.0) list(APPEND ${componentlibvar} ${basedir}/lib${_arch_suffix}-msvc-${_toolset_major_version}.0)
@ -1124,7 +1178,7 @@ else()
# _Boost_COMPONENT_HEADERS. See the instructions at the top of # _Boost_COMPONENT_HEADERS. See the instructions at the top of
# _Boost_COMPONENT_DEPENDENCIES. # _Boost_COMPONENT_DEPENDENCIES.
set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS} set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS}
"1.69.0" "1.69" "1.70.0" "1.70" "1.69.0" "1.69"
"1.68.0" "1.68" "1.67.0" "1.67" "1.66.0" "1.66" "1.65.1" "1.65.0" "1.65" "1.68.0" "1.68" "1.67.0" "1.67" "1.66.0" "1.66" "1.65.1" "1.65.0" "1.65"
"1.64.0" "1.64" "1.63.0" "1.63" "1.62.0" "1.62" "1.61.0" "1.61" "1.60.0" "1.60" "1.64.0" "1.64" "1.63.0" "1.63" "1.62.0" "1.62" "1.61.0" "1.61" "1.60.0" "1.60"
"1.59.0" "1.59" "1.58.0" "1.58" "1.57.0" "1.57" "1.56.0" "1.56" "1.55.0" "1.55" "1.59.0" "1.59" "1.58.0" "1.58" "1.57.0" "1.57" "1.56.0" "1.56" "1.55.0" "1.55"
@ -1282,7 +1336,7 @@ if(NOT Boost_INCLUDE_DIR)
list(APPEND _boost_INCLUDE_SEARCH_DIRS NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH) list(APPEND _boost_INCLUDE_SEARCH_DIRS NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH)
else() else()
if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC") if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC")
foreach(ver ${_Boost_KNOWN_VERSIONS}) foreach(ver ${_boost_TEST_VERSIONS})
string(REPLACE "." "_" ver "${ver}") string(REPLACE "." "_" ver "${ver}")
list(APPEND _boost_INCLUDE_SEARCH_DIRS PATHS "C:/local/boost_${ver}") list(APPEND _boost_INCLUDE_SEARCH_DIRS PATHS "C:/local/boost_${ver}")
endforeach() endforeach()
@ -1367,6 +1421,7 @@ if(Boost_INCLUDE_DIR)
math(EXPR Boost_MAJOR_VERSION "${Boost_VERSION} / 100000") math(EXPR Boost_MAJOR_VERSION "${Boost_VERSION} / 100000")
math(EXPR Boost_MINOR_VERSION "${Boost_VERSION} / 100 % 1000") math(EXPR Boost_MINOR_VERSION "${Boost_VERSION} / 100 % 1000")
math(EXPR Boost_SUBMINOR_VERSION "${Boost_VERSION} % 100") math(EXPR Boost_SUBMINOR_VERSION "${Boost_VERSION} % 100")
set(Boost_VERSION_STRING "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
string(APPEND Boost_ERROR_REASON string(APPEND Boost_ERROR_REASON
"Boost version: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}\nBoost include path: ${Boost_INCLUDE_DIR}") "Boost version: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}\nBoost include path: ${Boost_INCLUDE_DIR}")
@ -1426,6 +1481,13 @@ if ( NOT Boost_NAMESPACE )
set(Boost_NAMESPACE "boost") set(Boost_NAMESPACE "boost")
endif() endif()
if(Boost_DEBUG)
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
"Boost_LIB_PREFIX = ${Boost_LIB_PREFIX}")
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
"Boost_NAMESPACE = ${Boost_NAMESPACE}")
endif()
# ------------------------------------------------------------------------ # ------------------------------------------------------------------------
# Suffix initialization and compiler suffix detection. # Suffix initialization and compiler suffix detection.
# ------------------------------------------------------------------------ # ------------------------------------------------------------------------
@ -1601,7 +1663,7 @@ foreach(c DEBUG RELEASE)
if( Boost_NO_SYSTEM_PATHS ) if( Boost_NO_SYSTEM_PATHS )
list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH) list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH)
else() else()
foreach(ver ${_Boost_KNOWN_VERSIONS}) foreach(ver ${_boost_TEST_VERSIONS})
string(REPLACE "." "_" ver "${ver}") string(REPLACE "." "_" ver "${ver}")
_Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "C:/local/boost_${ver}") _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "C:/local/boost_${ver}")
endforeach() endforeach()
@ -1715,10 +1777,10 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
# Handle Python version suffixes # Handle Python version suffixes
unset(COMPONENT_PYTHON_VERSION_MAJOR) unset(COMPONENT_PYTHON_VERSION_MAJOR)
unset(COMPONENT_PYTHON_VERSION_MINOR) unset(COMPONENT_PYTHON_VERSION_MINOR)
if(${COMPONENT} MATCHES "^(python|mpi_python|numpy)([0-9])\$") if(${COMPONENT}${BOOST_PYTHON_SUFFIX} MATCHES "^(python|mpi_python|numpy)([0-9])\$")
set(COMPONENT_UNVERSIONED "${CMAKE_MATCH_1}") set(COMPONENT_UNVERSIONED "${CMAKE_MATCH_1}")
set(COMPONENT_PYTHON_VERSION_MAJOR "${CMAKE_MATCH_2}") set(COMPONENT_PYTHON_VERSION_MAJOR "${CMAKE_MATCH_2}")
elseif(${COMPONENT} MATCHES "^(python|mpi_python|numpy)([0-9])\\.?([0-9])\$") elseif(${COMPONENT}${BOOST_PYTHON_SUFFIX} MATCHES "^(python|mpi_python|numpy)([0-9])\\.?([0-9])\$")
set(COMPONENT_UNVERSIONED "${CMAKE_MATCH_1}") set(COMPONENT_UNVERSIONED "${CMAKE_MATCH_1}")
set(COMPONENT_PYTHON_VERSION_MAJOR "${CMAKE_MATCH_2}") set(COMPONENT_PYTHON_VERSION_MAJOR "${CMAKE_MATCH_2}")
set(COMPONENT_PYTHON_VERSION_MINOR "${CMAKE_MATCH_3}") set(COMPONENT_PYTHON_VERSION_MINOR "${CMAKE_MATCH_3}")
@ -1732,7 +1794,7 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}${COMPONENT_PYTHON_VERSION_MAJOR}-py${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}") list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}${COMPONENT_PYTHON_VERSION_MAJOR}-py${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}")
list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-py${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}") list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-py${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}")
# Gentoo # Gentoo
list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}") list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-${COMPONENT_PYTHON_VERSION_MAJOR}.${COMPONENT_PYTHON_VERSION_MINOR}")
# RPMs # RPMs
list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}") list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}")
endif() endif()
@ -1783,10 +1845,12 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
foreach(compiler IN LISTS _boost_COMPILER) foreach(compiler IN LISTS _boost_COMPILER)
list(APPEND _boost_RELEASE_NAMES list(APPEND _boost_RELEASE_NAMES
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION} ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}${_boost_ARCHITECTURE_TAG}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG} ) ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG} )
endforeach() endforeach()
list(APPEND _boost_RELEASE_NAMES list(APPEND _boost_RELEASE_NAMES
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION} ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}${_boost_ARCHITECTURE_TAG}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG} ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED} ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component} ) ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component} )
@ -1795,10 +1859,12 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
foreach(compiler IN LISTS _boost_COMPILER) foreach(compiler IN LISTS _boost_COMPILER)
list(APPEND _boost_RELEASE_NAMES list(APPEND _boost_RELEASE_NAMES
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION} ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG} ) ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG} )
endforeach() endforeach()
list(APPEND _boost_RELEASE_NAMES list(APPEND _boost_RELEASE_NAMES
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION} ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG} ) ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG} )
endif() endif()
endforeach() endforeach()
@ -1836,10 +1902,12 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
foreach(compiler IN LISTS _boost_COMPILER) foreach(compiler IN LISTS _boost_COMPILER)
list(APPEND _boost_DEBUG_NAMES list(APPEND _boost_DEBUG_NAMES
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION} ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG} ) ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG} )
endforeach() endforeach()
list(APPEND _boost_DEBUG_NAMES list(APPEND _boost_DEBUG_NAMES
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION} ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG} ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED} ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component} ) ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component} )
@ -1848,10 +1916,12 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
foreach(compiler IN LISTS _boost_COMPILER) foreach(compiler IN LISTS _boost_COMPILER)
list(APPEND _boost_DEBUG_NAMES list(APPEND _boost_DEBUG_NAMES
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION} ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG} ) ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG} )
endforeach() endforeach()
list(APPEND _boost_DEBUG_NAMES list(APPEND _boost_DEBUG_NAMES
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION} ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}
${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG} ) ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${component}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG} )
endif() endif()
endforeach() endforeach()