diff options
author | Brad King <brad.king@kitware.com> | 2024-05-07 12:33:56 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2024-05-07 12:34:05 (GMT) |
commit | 617884e78a20ec7c34147bd04ba4fd058a1008f6 (patch) | |
tree | a2cfc784135c298f9b020c9d872e16b2c1bee258 /Modules | |
parent | f082c3d4c3a5ef4252b00c1d9bcb6796fd9f9e4d (diff) | |
parent | 6df925b595220a0db1d7c172f15f39f4bee9f75d (diff) | |
download | CMake-617884e78a20ec7c34147bd04ba4fd058a1008f6.zip CMake-617884e78a20ec7c34147bd04ba4fd058a1008f6.tar.gz CMake-617884e78a20ec7c34147bd04ba4fd058a1008f6.tar.bz2 |
Merge topic 'cxx-inspect-without-scanning'
6df925b595 cxxmodules: Do not scan sources while testing the compiler
Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !9494
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/CMakeDetermineCompilerABI.cmake | 3 | ||||
-rw-r--r-- | Modules/CMakeTestCXXCompiler.cmake | 13 |
2 files changed, 16 insertions, 0 deletions
diff --git a/Modules/CMakeDetermineCompilerABI.cmake b/Modules/CMakeDetermineCompilerABI.cmake index 6d82304..4049bc1 100644 --- a/Modules/CMakeDetermineCompilerABI.cmake +++ b/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. diff --git a/Modules/CMakeTestCXXCompiler.cmake b/Modules/CMakeTestCXXCompiler.cmake index c82a154..6f5b36c 100644 --- a/Modules/CMakeTestCXXCompiler.cmake +++ b/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}) |