mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-15 05:51:07 -05:00
FindBoost: Add vars Boost_VERSION_MACRO/MAJOR/MINOR/PATCH/COUNT
This commit is contained in:
@@ -1,5 +1,14 @@
|
|||||||
FindBoost-fphsa
|
FindBoost-fphsa
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
* The :module:`FindBoost` module defines a new imported target
|
* The :module:`FindBoost` module was reworked to expose a more
|
||||||
``Boost::headers`` (same as ``Boost::boost``).
|
consistent user experience between its config and module modes
|
||||||
|
and with other find modules in general.
|
||||||
|
|
||||||
|
* A new imported target ``Boost::headers`` is now defined (same
|
||||||
|
as ``Boost::boost``).
|
||||||
|
|
||||||
|
* New output variables ``Boost_VERSION_MACRO``,
|
||||||
|
``Boost_VERSION_MAJOR``, ``Boost_VERSION_MINOR``,
|
||||||
|
``Boost_VERSION_PATCH``, and ``Boost_VERSION_COUNT``
|
||||||
|
were added.
|
||||||
|
|||||||
@@ -31,11 +31,16 @@ case results are reported in variables::
|
|||||||
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
|
alias: Boost_VERSION_MACRO
|
||||||
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_SUBMINOR_VERSION - Boost subminor version number (Z in x.y.Z)
|
|
||||||
Boost_VERSION_STRING - Boost version number in x.y.z format
|
Boost_VERSION_STRING - Boost version number in x.y.z format
|
||||||
|
Boost_LIB_VERSION - Version string appended to library filenames
|
||||||
|
Boost_VERSION_MAJOR - Boost major version number (X in X.y.z)
|
||||||
|
alias: Boost_MAJOR_VERSION
|
||||||
|
Boost_VERSION_MINOR - Boost minor version number (Y in x.Y.z)
|
||||||
|
alias: Boost_MINOR_VERSION
|
||||||
|
Boost_VERSION_PATCH - Boost subminor version number (Z in x.y.Z)
|
||||||
|
alias: Boost_SUBMINOR_VERSION
|
||||||
|
Boost_VERSION_COUNT - Amount of version components (3)
|
||||||
Boost_LIB_DIAGNOSTIC_DEFINITIONS (Windows)
|
Boost_LIB_DIAGNOSTIC_DEFINITIONS (Windows)
|
||||||
- Pass to add_definitions() to have diagnostic
|
- Pass to add_definitions() to have diagnostic
|
||||||
information about Boost's automatic linking
|
information about Boost's automatic linking
|
||||||
@@ -1390,30 +1395,40 @@ if(Boost_INCLUDE_DIR)
|
|||||||
"location of version.hpp: ${Boost_INCLUDE_DIR}/boost/version.hpp")
|
"location of version.hpp: ${Boost_INCLUDE_DIR}/boost/version.hpp")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Extract Boost_VERSION and Boost_LIB_VERSION from version.hpp
|
# Extract Boost_VERSION_MACRO and Boost_LIB_VERSION from version.hpp
|
||||||
set(Boost_VERSION 0)
|
set(Boost_VERSION_MACRO 0)
|
||||||
set(Boost_LIB_VERSION "")
|
set(Boost_LIB_VERSION "")
|
||||||
file(STRINGS "${Boost_INCLUDE_DIR}/boost/version.hpp" _boost_VERSION_HPP_CONTENTS REGEX "#define BOOST_(LIB_)?VERSION ")
|
file(STRINGS "${Boost_INCLUDE_DIR}/boost/version.hpp" _boost_VERSION_HPP_CONTENTS REGEX "#define BOOST_(LIB_)?VERSION ")
|
||||||
set(_Boost_VERSION_REGEX "([0-9]+)")
|
if("${_boost_VERSION_HPP_CONTENTS}" MATCHES "#define BOOST_VERSION ([0-9]+)")
|
||||||
set(_Boost_LIB_VERSION_REGEX "\"([0-9_]+)\"")
|
set(Boost_VERSION_MACRO "${CMAKE_MATCH_1}")
|
||||||
foreach(v VERSION LIB_VERSION)
|
endif()
|
||||||
if("${_boost_VERSION_HPP_CONTENTS}" MATCHES "#define BOOST_${v} ${_Boost_${v}_REGEX}")
|
if("${_boost_VERSION_HPP_CONTENTS}" MATCHES "#define BOOST_LIB_VERSION \"([0-9_]+)\"")
|
||||||
set(Boost_${v} "${CMAKE_MATCH_1}")
|
set(Boost_LIB_VERSION "${CMAKE_MATCH_1}")
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
|
||||||
unset(_boost_VERSION_HPP_CONTENTS)
|
unset(_boost_VERSION_HPP_CONTENTS)
|
||||||
|
|
||||||
math(EXPR Boost_MAJOR_VERSION "${Boost_VERSION} / 100000")
|
# Calculate version components
|
||||||
math(EXPR Boost_MINOR_VERSION "${Boost_VERSION} / 100 % 1000")
|
math(EXPR Boost_VERSION_MAJOR "${Boost_VERSION_MACRO} / 100000")
|
||||||
math(EXPR Boost_SUBMINOR_VERSION "${Boost_VERSION} % 100")
|
math(EXPR Boost_VERSION_MINOR "${Boost_VERSION_MACRO} / 100 % 1000")
|
||||||
set(Boost_VERSION_STRING "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
|
math(EXPR Boost_VERSION_PATCH "${Boost_VERSION_MACRO} % 100")
|
||||||
|
set(Boost_VERSION_COUNT 3)
|
||||||
|
|
||||||
|
# Define alias variables for backwards compat.
|
||||||
|
set(Boost_MAJOR_VERSION ${Boost_VERSION_MAJOR})
|
||||||
|
set(Boost_MINOR_VERSION ${Boost_VERSION_MINOR})
|
||||||
|
set(Boost_SUBMINOR_VERSION ${Boost_VERSION_PATCH})
|
||||||
|
|
||||||
|
# Define Boost version in x.y.z format
|
||||||
|
set(Boost_VERSION_STRING "${Boost_VERSION_MAJOR}.${Boost_VERSION_MINOR}.${Boost_VERSION_PATCH}")
|
||||||
|
|
||||||
|
# Define final Boost_VERSION
|
||||||
|
set(Boost_VERSION ${Boost_VERSION_MACRO})
|
||||||
|
|
||||||
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}")
|
||||||
if(Boost_DEBUG)
|
if(Boost_DEBUG)
|
||||||
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
|
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
|
||||||
"version.hpp reveals boost "
|
"version.hpp reveals boost ${Boost_VERSION_STRING}")
|
||||||
"${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(Boost_FIND_VERSION)
|
if(Boost_FIND_VERSION)
|
||||||
|
|||||||
Reference in New Issue
Block a user