Browse Source

Merge topic 'cxx-inspect-without-scanning'

6df925b595 cxxmodules: Do not scan sources while testing the compiler

Acked-by: Kitware Robot <[email protected]>
Reviewed-by: Ben Boeckel <[email protected]>
Merge-request: !9494
Brad King 1 year ago
parent
commit
617884e78a
2 changed files with 16 additions and 0 deletions
  1. 3 0
      Modules/CMakeDetermineCompilerABI.cmake
  2. 13 0
      Modules/CMakeTestCXXCompiler.cmake

+ 3 - 0
Modules/CMakeDetermineCompilerABI.cmake

@@ -39,6 +39,9 @@ function(CMAKE_DETERMINE_COMPILER_ABI lang src)
       endif()
       set(CMAKE_${lang}_RUNTIME_LIBRARY "Static")
     endif()
+    if(lang STREQUAL "CXX")
+      set(CMAKE_${lang}_SCAN_FOR_MODULES OFF)
+    endif()
     if(NOT "x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xMSVC")
       # Avoid adding our own platform standard libraries for compilers
       # from which we might detect implicit link libraries.

+ 13 - 0
Modules/CMakeTestCXXCompiler.cmake

@@ -37,6 +37,13 @@ endif()
 # any makefiles or projects.
 if(NOT CMAKE_CXX_COMPILER_WORKS)
   PrintTestCompilerStatus("CXX")
+  # FIXME: Use a block() to isolate the variables we set/unset here.
+  if(DEFINED CMAKE_CXX_SCAN_FOR_MODULES)
+    set(__CMAKE_SAVED_CXX_SCAN_FOR_MODULES "${CMAKE_CXX_SCAN_FOR_MODULES}")
+  else()
+    unset(__CMAKE_SAVED_CXX_SCAN_FOR_MODULES)
+  endif()
+  set(CMAKE_CXX_SCAN_FOR_MODULES OFF)
   __TestCompiler_setTryCompileTargetType()
   string(CONCAT __TestCompiler_testCXXCompilerSource
     "#ifndef __cplusplus\n"
@@ -49,6 +56,12 @@ if(NOT CMAKE_CXX_COMPILER_WORKS)
   try_compile(CMAKE_CXX_COMPILER_WORKS
     SOURCE_FROM_VAR testCXXCompiler.cxx __TestCompiler_testCXXCompilerSource
     OUTPUT_VARIABLE __CMAKE_CXX_COMPILER_OUTPUT)
+  if(DEFINED __CMAKE_SAVED_CXX_SCAN_FOR_MODULES)
+    set(CMAKE_CXX_SCAN_FOR_MODULES "${__CMAKE_SAVED_CXX_SCAN_FOR_MODULES}")
+    unset(__CMAKE_SAVED_CXX_SCAN_FOR_MODULES)
+  else()
+    unset(CMAKE_CXX_SCAN_FOR_MODULES)
+  endif()
   unset(__TestCompiler_testCXXCompilerSource)
   # Move result from cache to normal variable.
   set(CMAKE_CXX_COMPILER_WORKS ${CMAKE_CXX_COMPILER_WORKS})