Browse Source

Clang: Avoid extra C++ feature detection when simulating MSVC

Apply the optimization from commit v3.10.0-rc1~131^2 (MSVC: Avoid
unnecessary C++ feature detection steps, 2017-09-11) to the case of
Clang simulating a version of MSVC that does not define standards.

Issue: #17274
Brad King 7 years ago
parent
commit
8381bc12ad
1 changed files with 15 additions and 0 deletions
  1. 15 0
      Modules/Compiler/Clang-CXX.cmake

+ 15 - 0
Modules/Compiler/Clang-CXX.cmake

@@ -70,4 +70,19 @@ else()
 
   # There is no meaningful default for this
   set(CMAKE_CXX_STANDARD_DEFAULT "")
+
+  # There are no compiler modes so we only need to test features once.
+  # Override the default macro for this special case.  Pretend that
+  # all language standards are available so that at least compilation
+  # can be attempted.
+  macro(cmake_record_cxx_compile_features)
+    list(APPEND CMAKE_CXX_COMPILE_FEATURES
+      cxx_std_98
+      cxx_std_11
+      cxx_std_14
+      cxx_std_17
+      cxx_std_20
+      )
+    _record_compiler_features(CXX "" CMAKE_CXX_COMPILE_FEATURES)
+  endmacro()
 endif()