summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2014-03-28 15:09:35 (GMT)
committerStephen Kelly <steveire@gmail.com>2014-05-07 10:17:49 (GMT)
commit1df2116bfaa4c575404ae1eef225aed1530d668a (patch)
tree99a8fd5375d47f6359fd269c0d9e3ab030bc131e /Modules
parentc4f4dac2d550f0a8a44530187eac2ad03191c981 (diff)
downloadCMake-1df2116bfaa4c575404ae1eef225aed1530d668a.zip
CMake-1df2116bfaa4c575404ae1eef225aed1530d668a.tar.gz
CMake-1df2116bfaa4c575404ae1eef225aed1530d668a.tar.bz2
Features: Decay language flag if requested is not available.
Use the highest standard compile flags available if requested language version is too new. This supports use-cases like set(CMAKE_CXX_STANDARD 14) # Compiled with -std=c++11 with GNU 4.7, which has no -std=c++14 # or equivalent flag add_executable(main main.cpp) This can be used in combination with preprocessor defines which communicate the availability of certain language features for optional use.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/Compiler/GNU-CXX.cmake2
1 files changed, 2 insertions, 0 deletions
diff --git a/Modules/Compiler/GNU-CXX.cmake b/Modules/Compiler/GNU-CXX.cmake
index 7464525..d324985 100644
--- a/Modules/Compiler/GNU-CXX.cmake
+++ b/Modules/Compiler/GNU-CXX.cmake
@@ -24,6 +24,8 @@ elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.3)
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
endif()
+set(CMAKE_CXX_STANDARD_DEFAULT 98)
+
macro(cmake_record_cxx_compile_features)
macro(_get_gcc_features std_version list)
record_compiler_features(CXX "-std=${std_version}" ${list})