Add a check that the host compiler is modern to CMake, take 1. This is
authorChandler Carruth <chandlerc@gmail.com>
Mon, 13 Jan 2014 21:47:35 +0000 (21:47 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Mon, 13 Jan 2014 21:47:35 +0000 (21:47 +0000)
likely to be reverted and re-applied a few times. The minimum versions
we're aiming at:

  GCC 4.7
  Clang 3.1
  MSVC 17.0 (Visual Studio 2012)

Let me know if something breaks!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199145 91177308-0d34-0410-b5e6-96231b3b80d8

cmake/config-ix.cmake

index dc991a23be075ad3554717c0218bbb594d158775..7b2b005bb9f5ed2dca4a04c5adef660ec75ecdc4 100755 (executable)
@@ -316,6 +316,25 @@ if (LIBXML2_FOUND)
   endif ()
 endif ()
 
+option(LLVM_FORCE_USE_OLD_TOOLCHAIN
+       "Set to ON if you want to force CMake to use a toolchain older than those supported by LLVM."
+       OFF)
+if(NOT LLVM_FORCE_USE_OLD_TOOLCHAIN)
+  if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+    if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
+      message(FATAL_ERROR "Host GCC version must be at least 4.7!")
+    endif()
+  elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+    if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.1)
+      message(FATAL_ERROR "Host Clang version must be at least 3.1!")
+    endif()
+  elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
+    if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 17.0)
+      message(FATAL_ERROR "Host Visual Studio must be at least 2012 (MSVC 17.0)")
+    endif()
+  endif()
+endif()
+
 include(CheckCXXCompilerFlag)
 
 check_cxx_compiler_flag("-Wno-variadic-macros" SUPPORTS_NO_VARIADIC_MACROS_FLAG)