diff options
author | Rolf Eike Beer <eike@sf-mail.de> | 2017-11-24 19:00:53 +0300 |
---|---|---|
committer | Rolf Eike Beer <eike@sf-mail.de> | 2017-11-24 19:00:53 +0300 |
commit | ff59b6179dc70903fc04ad891d1295c84090f9b5 (patch) | |
tree | 389d4baa733babe706ee4aa276b6e77e41208c1d /CMakeLists.txt | |
parent | 4c9a28a28e078ef7e1eb7e98cdb2dfabd4b378ca (diff) |
CMake: automatically handle C++11 settings if possible
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index cc3a41b6..c825beb4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,6 +31,10 @@ option(RAPIDJSON_BUILD_THIRDPARTY_GTEST "Use gtest installation in `thirdparty/gtest` by default if available" OFF) option(RAPIDJSON_BUILD_CXX11 "Build rapidjson with C++11 (gcc/clang)" ON) +if(RAPIDJSON_BUILD_CXX11) + set(CMAKE_CXX_STANDARD 11) + set(CMAKE_CXX_STANDARD_REQUIRED TRUE) +endif() option(RAPIDJSON_BUILD_ASAN "Build rapidjson with address sanitizer (gcc/clang)" OFF) option(RAPIDJSON_BUILD_UBSAN "Build rapidjson with undefined behavior sanitizer (gcc/clang)" OFF) @@ -62,7 +66,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror") set(EXTRA_CXX_FLAGS -Weffc++ -Wswitch-default -Wfloat-equal -Wconversion -Wsign-conversion) - if (RAPIDJSON_BUILD_CXX11) + if (RAPIDJSON_BUILD_CXX11 AND CMAKE_VERSION VERSION_LESS 3.1) if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.7.0") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") else() @@ -94,7 +98,7 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang") endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -Wno-missing-field-initializers") set(EXTRA_CXX_FLAGS -Weffc++ -Wswitch-default -Wfloat-equal -Wconversion -Wimplicit-fallthrough) - if (RAPIDJSON_BUILD_CXX11) + if (RAPIDJSON_BUILD_CXX11 AND CMAKE_VERSION VERSION_LESS 3.1) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") endif() if (RAPIDJSON_BUILD_ASAN) |