Commit 9075e9624d4b67462311904be9bd3a99a7babdd5
1 parent
89c657f5
Check the c++ standard
Showing
1 changed file
with
17 additions
and
6 deletions
compiler.cmake
@@ -127,13 +127,24 @@ if(CMAKE_COMPILER_IS_GNUCXX) | @@ -127,13 +127,24 @@ if(CMAKE_COMPILER_IS_GNUCXX) | ||
127 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpmath=sse" ) | 127 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpmath=sse" ) |
128 | endif() | 128 | endif() |
129 | 129 | ||
130 | - # -std=c++11 will be supported starting GCC 4.7, older versions need c++0x | ||
131 | - CHECK_CXX_COMPILER_FLAG( -std=c++11 cxxresult ) | ||
132 | - | ||
133 | - if( NOT cxxresult) | ||
134 | - message(FATAL_ERROR, "Compiler does not support c++11") | 130 | + # Check which version of c++ we can use. We drill down from c++17 to c98 |
131 | + CHECK_CXX_COMPILER_FLAG( -stdc++17 cxxresult ) | ||
132 | + if( NOT cxxresult ) | ||
133 | + CHECK_CXX_COMPILER_FLAG( -std=c++14 cxxresult ) | ||
134 | + if( NOT cxxresult ) | ||
135 | + CHECK_CXX_COMPILER_FLAG( -std=c++11 cxxresult ) | ||
136 | + if( NOT cxxresult ) | ||
137 | + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") | ||
138 | + else() | ||
139 | + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") | ||
140 | + endif() | ||
141 | + else() | ||
142 | + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") | ||
143 | + endif() | ||
144 | + else() | ||
145 | + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") | ||
135 | endif() | 146 | endif() |
136 | - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") | 147 | + MESSAGE(STATUS "Compiling for ${CMAKE_CXX_FLAGS}") |
137 | 148 | ||
138 | # -Wzero-as-null-pointer-constant is disabled for now, since the Qt 4.8.4 | 149 | # -Wzero-as-null-pointer-constant is disabled for now, since the Qt 4.8.4 |
139 | # macro's produce a bucketload of these warnings. Might be useful later on. | 150 | # macro's produce a bucketload of these warnings. Might be useful later on. |