|
6 | 6 | # Original CMake flags and includes are saved to be restored at the end of the file. |
7 | 7 | # This way project's original settings are not modified by the process of these checks. |
8 | 8 | set(SAVED_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) |
| 9 | +set(SAVED_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) |
9 | 10 | set(SAVED_CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES}) |
10 | 11 |
|
| 12 | +set(CMAKE_CXX_FLAGS "") |
| 13 | + |
11 | 14 | if(NOT MSVC_VERSION) |
12 | 15 |
|
13 | 16 | # Even if we are ensuring that we use CMAKE_CXX_STANDARD >= 14, check if |
@@ -56,6 +59,7 @@ if(NOT MSVC_VERSION) |
56 | 59 |
|
57 | 60 | # Check for issues with older gcc compilers if "inline" aggregate initialization |
58 | 61 | # works for array class members https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65815 |
| 62 | + set(CMAKE_REQUIRED_FLAGS "") |
59 | 63 | CHECK_CXX_SOURCE_COMPILES( |
60 | 64 | "struct array { |
61 | 65 | int data[2]; |
@@ -98,6 +102,7 @@ if(NOT MSVC_VERSION) |
98 | 102 | return 0; |
99 | 103 | }" |
100 | 104 | NO_CLANG_TEMPLATE_BUG) |
| 105 | + set(CMAKE_REQUIRED_INCLUDES "") # clean includes after check |
101 | 106 |
|
102 | 107 | # This is a workaround for older incompatible versions of libstdc++ and clang. |
103 | 108 | # Please see https://llvm.org/bugs/show_bug.cgi?id=15517 for more info. |
@@ -142,5 +147,6 @@ CHECK_CXX_SOURCE_COMPILES( |
142 | 147 | ) |
143 | 148 |
|
144 | 149 | # Restore original, project's settings |
145 | | -set(CMAKE_REQUIRED_INCLUDES ${SAVED_CMAKE_REQUIRED_INCLUDES}) |
146 | 150 | set(CMAKE_REQUIRED_FLAGS ${SAVED_CMAKE_REQUIRED_FLAGS}) |
| 151 | +set(CMAKE_CXX_FLAGS ${SAVED_CMAKE_CXX_FLAGS}) |
| 152 | +set(CMAKE_REQUIRED_INCLUDES ${SAVED_CMAKE_REQUIRED_INCLUDES}) |
0 commit comments