123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- # Copyright 2017-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)
- string(REGEX MATCHALL "[0-9]+" _BOOST_COMPILER_VERSION ${CMAKE_CXX_COMPILER_VERSION})
- list(GET _BOOST_COMPILER_VERSION 0 _BOOST_COMPILER_VERSION_MAJOR)
- list(GET _BOOST_COMPILER_VERSION 1 _BOOST_COMPILER_VERSION_MINOR)
- if(BORLAND)
- # Borland is unversioned
- set(BOOST_DETECTED_TOOLSET "bcb")
- set(_BOOST_COMPILER_VERSION_MAJOR)
- set(_BOOST_COMPILER_VERSION_MINOR)
- elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
- set(BOOST_DETECTED_TOOLSET "clang-darwin")
- elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
- if(MSVC)
- set(BOOST_DETECTED_TOOLSET "clangw")
- else()
- set(BOOST_DETECTED_TOOLSET "clang")
- endif()
- if(_BOOST_COMPILER_VERSION_MAJOR GREATER 3)
- set(_BOOST_COMPILER_VERSION_MINOR)
- endif()
- elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
- if(WIN32)
- # Intel-Win is unversioned
- set(BOOST_DETECTED_TOOLSET "iw")
- set(_BOOST_COMPILER_VERSION_MAJOR)
- set(_BOOST_COMPILER_VERSION_MINOR)
- else()
- set(BOOST_DETECTED_TOOLSET "il")
- endif()
- elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MIPSpro")
- set(BOOST_DETECTED_TOOLSET "mp")
- elseif(CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
- set(BOOST_DETECTED_TOOLSET "sun")
- elseif(CMAKE_CXX_COMPILER_ID STREQUAL "IBM XL")
- set(BOOST_DETECTED_TOOLSET "xlc")
- elseif(MINGW)
- set(BOOST_DETECTED_TOOLSET "mgw")
- if(_BOOST_COMPILER_VERSION_MAJOR GREATER 4)
- set(_BOOST_COMPILER_VERSION_MINOR)
- endif()
- elseif(CMAKE_COMPILER_IS_GNUCXX)
- if(APPLE)
- set(BOOST_DETECTED_TOOLSET "xgcc")
- else()
- set(BOOST_DETECTED_TOOLSET "gcc")
- endif()
- if(_BOOST_COMPILER_VERSION_MAJOR GREATER 4)
- set(_BOOST_COMPILER_VERSION_MINOR)
- endif()
- elseif(MSVC)
- if((MSVC_VERSION GREATER 1919) AND (MSVC_VERSION LESS 1930))
- set(BOOST_DETECTED_TOOLSET "vc142")
- elseif((MSVC_VERSION GREATER 1909) AND (MSVC_VERSION LESS 1920))
- set(BOOST_DETECTED_TOOLSET "vc141")
- elseif(MSVC_VERSION EQUAL 1900)
- set(BOOST_DETECTED_TOOLSET "vc140")
- elseif(MSVC_VERSION EQUAL 1800)
- set(BOOST_DETECTED_TOOLSET "vc120")
- elseif(MSVC_VERSION EQUAL 1700)
- set(BOOST_DETECTED_TOOLSET "vc110")
- elseif(MSVC_VERSION EQUAL 1600)
- set(BOOST_DETECTED_TOOLSET "vc100")
- elseif(MSVC_VERSION EQUAL 1500)
- set(BOOST_DETECTED_TOOLSET "vc90")
- elseif(MSVC_VERSION EQUAL 1400)
- set(BOOST_DETECTED_TOOLSET "vc80")
- elseif(MSVC_VERSION EQUAL 1310)
- set(BOOST_DETECTED_TOOLSET "vc71")
- elseif(MSVC_VERSION EQUAL 1300)
- set(BOOST_DETECTED_TOOLSET "vc7")
- elseif(MSVC_VERSION EQUAL 1200)
- set(BOOST_DETECTED_TOOLSET "vc6")
- endif()
- set(_BOOST_COMPILER_VERSION_MAJOR)
- set(_BOOST_COMPILER_VERSION_MINOR)
- endif()
- # Add version
- if(BOOST_DETECTED_TOOLSET)
- set(BOOST_DETECTED_TOOLSET ${BOOST_DETECTED_TOOLSET}${_BOOST_COMPILER_VERSION_MAJOR}${_BOOST_COMPILER_VERSION_MINOR})
- endif()
- unset(_BOOST_COMPILER_VERSION)
- unset(_BOOST_COMPILER_VERSION_MAJOR)
- unset(_BOOST_COMPILER_VERSION_MINOR)
- if("${BOOST_DETECTED_TOOLSET}" STREQUAL "")
- # Unknown toolset
- message(STATUS "Boost toolset is unknown (compiler ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION})")
- elseif(Boost_DEBUG)
- message(STATUS "Boost toolset is ${BOOST_DETECTED_TOOLSET} (${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION})")
- endif()
|