diff --git a/CMakeLists.txt b/CMakeLists.txt index fb781ce799e..835cb58fcc1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -198,7 +198,7 @@ else( MSVC ) option(LLVM_ENABLE_WARNINGS "Enable compiler warnings." ON) endif() -option(LLVM_ENABLE_CXX11 "Compile with C++11 enabled." ON) +option(LLVM_ENABLE_CXX1Y "Compile with C++1y enabled." OFF) option(LLVM_ENABLE_LIBCXX "Use libc++ if available." OFF) option(LLVM_ENABLE_PEDANTIC "Compile with pedantic enabled." ON) option(LLVM_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF) diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake index f132803b55b..ccf5f90f17c 100644 --- a/cmake/modules/HandleLLVMOptions.cmake +++ b/cmake/modules/HandleLLVMOptions.cmake @@ -287,10 +287,17 @@ elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE ) if (LLVM_ENABLE_WERROR) add_llvm_definitions( -Werror ) endif (LLVM_ENABLE_WERROR) - if (LLVM_ENABLE_CXX11) + if (LLVM_ENABLE_CXX1Y) + check_cxx_compiler_flag("-std=c++1y" CXX_SUPPORTS_CXX1Y) + append_if(CXX_SUPPORTS_CXX1Y "-std=c++1y" CMAKE_CXX_FLAGS) + else() check_cxx_compiler_flag("-std=c++11" CXX_SUPPORTS_CXX11) - append_if(CXX_SUPPORTS_CXX11 "-std=c++11" CMAKE_CXX_FLAGS) - endif (LLVM_ENABLE_CXX11) + if (CXX_SUPPORTS_CXX11) + append("-std=c++11" CMAKE_CXX_FLAGS) + else() + message(FATAL_ERROR "LLVM requires C++11 support but the '-std=c++11' flag isn't supported.") + endif() + endif() endif( MSVC ) macro(append_common_sanitizer_flags)