summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud A. de Grandmaison <arnaud.adegm@gmail.com>2013-11-26 10:33:53 +0000
committerArnaud A. de Grandmaison <arnaud.adegm@gmail.com>2013-11-26 10:33:53 +0000
commit7c6be4d5586aa365c8f52289ffddf57b87da4da7 (patch)
tree0dae14f58d3b58b042346026104e90ada4187c6f
parent54fec07ec00b4449393a66e8e2e62fd241781f80 (diff)
downloadllvm-7c6be4d5586aa365c8f52289ffddf57b87da4da7.tar.gz
llvm-7c6be4d5586aa365c8f52289ffddf57b87da4da7.tar.bz2
llvm-7c6be4d5586aa365c8f52289ffddf57b87da4da7.tar.xz
CMake : optionaly enable LLVM to be compiled with -std=c++11 (default: off)
In some case, it may be required to build LLVM in C++11 mode, as some the subprojects (like lldb) requires it. This mimics the autoconf behaviour. However, given the discussions on the switch to C++11 of the codebase, this behaviour should evolve to default to C++11 with some checks of the compiler capabilities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195727 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--CMakeLists.txt1
-rw-r--r--cmake/modules/HandleLLVMOptions.cmake4
-rw-r--r--docs/CMake.rst3
3 files changed, 8 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 551b17828b..ce952f8997 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -179,6 +179,7 @@ else( MSVC )
option(LLVM_ENABLE_WARNINGS "Enable compiler warnings." ON)
endif()
+option(LLVM_ENABLE_CXX11 "Compile with C++11 enabled." 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 bb41a58df2..811ee92243 100644
--- a/cmake/modules/HandleLLVMOptions.cmake
+++ b/cmake/modules/HandleLLVMOptions.cmake
@@ -246,6 +246,10 @@ elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE )
if (LLVM_ENABLE_WERROR)
add_llvm_definitions( -Werror )
endif (LLVM_ENABLE_WERROR)
+ if (LLVM_ENABLE_CXX11)
+ 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)
endif( MSVC )
macro(append_common_sanitizer_flags)
diff --git a/docs/CMake.rst b/docs/CMake.rst
index c9fe538c9d..9fb4f489b4 100644
--- a/docs/CMake.rst
+++ b/docs/CMake.rst
@@ -211,6 +211,9 @@ LLVM-specific variables
**LLVM_ENABLE_THREADS**:BOOL
Build with threads support, if available. Defaults to ON.
+**LLVM_ENABLE_CXX11**:BOOL
+ Build in C++11 mode, if available. Defaults to OFF.
+
**LLVM_ENABLE_ASSERTIONS**:BOOL
Enables code assertions. Defaults to OFF if and only if ``CMAKE_BUILD_TYPE``
is *Release*.