summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/hana/cmake/CheckCxxCompilerSupport.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/hana/cmake/CheckCxxCompilerSupport.cmake')
-rw-r--r--src/boost/libs/hana/cmake/CheckCxxCompilerSupport.cmake85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/boost/libs/hana/cmake/CheckCxxCompilerSupport.cmake b/src/boost/libs/hana/cmake/CheckCxxCompilerSupport.cmake
new file mode 100644
index 000000000..0b5d72a6a
--- /dev/null
+++ b/src/boost/libs/hana/cmake/CheckCxxCompilerSupport.cmake
@@ -0,0 +1,85 @@
+# Copyright Louis Dionne 2013-2017
+# Copyright Markus J. Weber 2015
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+#
+#
+# This CMake module checks whether the current compiler is supported, and
+# provides friendly hints to the user.
+
+if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
+ if (${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS "3.9.1")
+ message(WARNING "
+ ### You appear to be using Clang ${CMAKE_CXX_COMPILER_VERSION}, which is known
+ ### to be unable to compile Hana. Consider switching to
+ ### Clang >= 3.9.1. If it is already installed on your
+ ### system, you can tell CMake about it with
+ ###
+ ### cmake .. -DCMAKE_CXX_COMPILER=/path/to/clang
+ ")
+ endif()
+
+ if (MSVC)
+ if(${MSVC_VERSION} LESS 1900)
+ message(WARNING "
+ ###
+ ### We detected that you were using Clang for Windows with a
+ ### -fms-compatibility-version parameter lower than 19. Only
+ ### -fms-compatibility-version=19 and above are supported by
+ ### Hana for lack of proper C++14 support prior for versions
+ ### below that.
+ ###
+ ### If this diagnostic is wrong and you are not using
+ ### -fms-compatibility-version, please file an issue at
+ ### https://github.com/boostorg/hana/issues.
+ ###
+ ")
+ endif()
+ endif()
+elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang")
+ if (${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS "6.1.0")
+ message(WARNING "
+ ### You appear to be using Apple's Clang ${CMAKE_CXX_COMPILER_VERSION}, which is
+ ### shipped with Xcode < 6.3. Unfortunately, only Apple's Clang
+ ### >= 6.1.0 (shipped with Xcode >= 6.3) can compile Hana.
+ ### You should consider updating to Xcode >= 6.3 (requires Yosemite)
+ ### or using a non-Apple Clang >= 3.9.1, which can be installed via
+ ### Homebrew with
+ ###
+ ### brew install llvm --with-clang
+ ###
+ ### You can then tell CMake to use that non-system Clang with
+ ###
+ ### cmake .. -DCMAKE_CXX_COMPILER=/path/to/clang
+ ")
+ endif()
+elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
+ if (${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS "6.0.0")
+ message(WARNING "
+ ### You appear to be using GCC ${CMAKE_CXX_COMPILER_VERSION}, which is known to be
+ ### unable to compile Hana. Only GCC >= 6.0.0 is supported.
+ ### Consider using a more recent GCC or switching to Clang.
+ ### If a more recent compiler is already installed on your
+ ### system, you can tell CMake to use it with
+ ###
+ ### cmake .. -DCMAKE_CXX_COMPILER=/path/to/compiler
+ ")
+ endif()
+elseif (MSVC)
+ message(WARNING "
+ ### Using the native Microsoft compiler (MSVC) is not supported for lack
+ ### of proper C++14 support. However, you can install pre-built Clang for
+ ### Windows binaries (with Visual Studio integration if desired) at
+ ### http://llvm.org/releases/download.html.
+ ###
+ ### More information about how to set up Hana with Clang for Windows is
+ ### available on Hana's wiki at http://git.io/vBYIp.
+ ")
+else()
+ message(WARNING "
+ ### You appear to be using a compiler that is not yet tested with Hana.
+ ### Please tell us whether it successfully compiles or if and how it
+ ### fails by opening an issue at https://github.com/boostorg/hana/issues.
+ ### Thanks!
+ ")
+endif()