summaryrefslogtreecommitdiffstats
path: root/Tests/Module/WriteCompilerDetectionHeader
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-06-01 17:40:03 (GMT)
committerKitware Robot <kwrobot@kitware.com>2017-06-01 17:40:47 (GMT)
commit860db083cafb1337147923f7dd21b57767abbee3 (patch)
treefea1a13e782087d9699998de11a2f321769c2103 /Tests/Module/WriteCompilerDetectionHeader
parentc80148c77e552a43b0648bad02de86e6b6d2b61d (diff)
parent3c1ecb5214afa45a44742ad2b1e24517925e858a (diff)
downloadCMake-860db083cafb1337147923f7dd21b57767abbee3.zip
CMake-860db083cafb1337147923f7dd21b57767abbee3.tar.gz
CMake-860db083cafb1337147923f7dd21b57767abbee3.tar.bz2
Merge topic 'add-common-record-features-macros'
3c1ecb52 Intel: Fix missing C std default for 12.0 <= ver < 12.1 f70b0bb3 SunPro: Make sure all known versions get CXX98 defaults 220ede74 GNU: Fix language defaults for 3.4 a40e6ba8 Clang: Fix language defaults for 2.1 9b112a84 Compilers: Port to use default cmake_record_lang_compile_features macros 37221529 MSVC: Add empty definitions for std compile options e556f1b9 CompileFeatures: Makes tests work with meta-feature only 20ffa147 Tests: Allow test macro to take no executable arguments ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !833
Diffstat (limited to 'Tests/Module/WriteCompilerDetectionHeader')
-rw-r--r--Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt13
1 files changed, 12 insertions, 1 deletions
diff --git a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
index 2657aeb..52d4613 100644
--- a/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
+++ b/Tests/Module/WriteCompilerDetectionHeader/CMakeLists.txt
@@ -48,7 +48,14 @@ macro(set_defines target true_defs false_defs)
)
endmacro()
+# Only run the compiler detection header test for compilers with
+# detailed features tables, not just meta-features
+
if (CMAKE_C_COMPILE_FEATURES)
+ set(C_expected_features ${CMAKE_C_COMPILE_FEATURES})
+ list(FILTER C_expected_features EXCLUDE REGEX "^c_std_[0-9][0-9]")
+endif()
+if (C_expected_features)
string(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" COMPILER_VERSION_MAJOR "${CMAKE_C_COMPILER_VERSION}")
string(REGEX REPLACE "^[0-9]+\\.([0-9]+)\\.[0-9]+.*" "\\1" COMPILER_VERSION_MINOR "${CMAKE_C_COMPILER_VERSION}")
string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" COMPILER_VERSION_PATCH "${CMAKE_C_COMPILER_VERSION}")
@@ -85,7 +92,11 @@ if (CMAKE_C_COMPILE_FEATURES)
endif()
endif()
-if (NOT CMAKE_CXX_COMPILE_FEATURES)
+if (CMAKE_CXX_COMPILE_FEATURES)
+ set(CXX_expected_features ${CMAKE_CXX_COMPILE_FEATURES})
+ list(FILTER CXX_expected_features EXCLUDE REGEX "^cxx_std_[0-9][0-9]")
+endif()
+if (NOT CXX_expected_features)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/dummy.cpp"
"int main(int,char**) { return 0; }\n"
)