BoostDetectToolset-1.82.0.cmake 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. # Copyright 2017-2019 Peter Dimov
  2. # Distributed under the Boost Software License, Version 1.0.
  3. # (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
  4. string(REGEX MATCHALL "[0-9]+" _BOOST_COMPILER_VERSION ${CMAKE_CXX_COMPILER_VERSION})
  5. list(GET _BOOST_COMPILER_VERSION 0 _BOOST_COMPILER_VERSION_MAJOR)
  6. list(GET _BOOST_COMPILER_VERSION 1 _BOOST_COMPILER_VERSION_MINOR)
  7. if(BORLAND)
  8. # Borland is unversioned
  9. set(BOOST_DETECTED_TOOLSET "bcb")
  10. set(_BOOST_COMPILER_VERSION_MAJOR)
  11. set(_BOOST_COMPILER_VERSION_MINOR)
  12. elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
  13. set(BOOST_DETECTED_TOOLSET "clang-darwin")
  14. # Match clang-darwin.jam
  15. if(_BOOST_COMPILER_VERSION_MAJOR GREATER 3)
  16. set(_BOOST_COMPILER_VERSION_MINOR)
  17. endif()
  18. elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
  19. if(MSVC_VERSION)
  20. set(BOOST_DETECTED_TOOLSET "clangw")
  21. else()
  22. set(BOOST_DETECTED_TOOLSET "clang")
  23. endif()
  24. if(_BOOST_COMPILER_VERSION_MAJOR GREATER 3)
  25. set(_BOOST_COMPILER_VERSION_MINOR)
  26. endif()
  27. elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Intel" OR CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")
  28. if(WIN32)
  29. # Intel-Win is unversioned
  30. set(BOOST_DETECTED_TOOLSET "iw")
  31. set(_BOOST_COMPILER_VERSION_MAJOR)
  32. set(_BOOST_COMPILER_VERSION_MINOR)
  33. else()
  34. set(BOOST_DETECTED_TOOLSET "il")
  35. endif()
  36. elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MIPSpro")
  37. set(BOOST_DETECTED_TOOLSET "mp")
  38. elseif(CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
  39. set(BOOST_DETECTED_TOOLSET "sun")
  40. elseif(CMAKE_CXX_COMPILER_ID STREQUAL "IBM XL")
  41. set(BOOST_DETECTED_TOOLSET "xlc")
  42. elseif(MINGW)
  43. set(BOOST_DETECTED_TOOLSET "mgw")
  44. if(_BOOST_COMPILER_VERSION_MAJOR GREATER 4)
  45. set(_BOOST_COMPILER_VERSION_MINOR)
  46. endif()
  47. elseif(CMAKE_COMPILER_IS_GNUCXX)
  48. if(APPLE)
  49. set(BOOST_DETECTED_TOOLSET "xgcc")
  50. else()
  51. set(BOOST_DETECTED_TOOLSET "gcc")
  52. endif()
  53. if(_BOOST_COMPILER_VERSION_MAJOR GREATER 4)
  54. set(_BOOST_COMPILER_VERSION_MINOR)
  55. endif()
  56. elseif(MSVC)
  57. if((MSVC_VERSION GREATER 1929) AND (MSVC_VERSION LESS 1940))
  58. set(BOOST_DETECTED_TOOLSET "vc143")
  59. elseif((MSVC_VERSION GREATER 1919) AND (MSVC_VERSION LESS 1930))
  60. set(BOOST_DETECTED_TOOLSET "vc142")
  61. elseif((MSVC_VERSION GREATER 1909) AND (MSVC_VERSION LESS 1920))
  62. set(BOOST_DETECTED_TOOLSET "vc141")
  63. elseif(MSVC_VERSION EQUAL 1900)
  64. set(BOOST_DETECTED_TOOLSET "vc140")
  65. elseif(MSVC_VERSION EQUAL 1800)
  66. set(BOOST_DETECTED_TOOLSET "vc120")
  67. elseif(MSVC_VERSION EQUAL 1700)
  68. set(BOOST_DETECTED_TOOLSET "vc110")
  69. elseif(MSVC_VERSION EQUAL 1600)
  70. set(BOOST_DETECTED_TOOLSET "vc100")
  71. elseif(MSVC_VERSION EQUAL 1500)
  72. set(BOOST_DETECTED_TOOLSET "vc90")
  73. elseif(MSVC_VERSION EQUAL 1400)
  74. set(BOOST_DETECTED_TOOLSET "vc80")
  75. elseif(MSVC_VERSION EQUAL 1310)
  76. set(BOOST_DETECTED_TOOLSET "vc71")
  77. elseif(MSVC_VERSION EQUAL 1300)
  78. set(BOOST_DETECTED_TOOLSET "vc7")
  79. elseif(MSVC_VERSION EQUAL 1200)
  80. set(BOOST_DETECTED_TOOLSET "vc6")
  81. endif()
  82. set(_BOOST_COMPILER_VERSION_MAJOR)
  83. set(_BOOST_COMPILER_VERSION_MINOR)
  84. endif()
  85. # Add version
  86. if(BOOST_DETECTED_TOOLSET)
  87. set(BOOST_DETECTED_TOOLSET ${BOOST_DETECTED_TOOLSET}${_BOOST_COMPILER_VERSION_MAJOR}${_BOOST_COMPILER_VERSION_MINOR})
  88. endif()
  89. unset(_BOOST_COMPILER_VERSION)
  90. unset(_BOOST_COMPILER_VERSION_MAJOR)
  91. unset(_BOOST_COMPILER_VERSION_MINOR)
  92. if("${BOOST_DETECTED_TOOLSET}" STREQUAL "")
  93. # Unknown toolset
  94. message(STATUS "Boost toolset is unknown (compiler ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION})")
  95. elseif(Boost_DEBUG)
  96. message(STATUS "Boost toolset is ${BOOST_DETECTED_TOOLSET} (${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION})")
  97. endif()