From d25480a43ee41c309baf4e983b836cc8c24d7465 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Sat, 1 Mar 2014 03:16:07 +0000 Subject: [PATCH] [C++11] Switch the CMake option from LLVM_ENABLE_CXX11 (default on) to LLVM_ENABLE_CXX1Y (default *off*). =D C++98 is dead. Long live C++11. I don't exactly recommend using C++1y just yet though... llvm-svn: 202567 --- CMakeLists.txt | 2 +- cmake/modules/HandleLLVMOptions.cmake | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) 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)