cxxmodules: Honor CMAKE_CXX_SCAN_FOR_MODULES in try_compile

Under CMP0155's NEW behavior, projects that explicitly enable C++20
support with `set(CMAKE_CXX_STANDARD 20)` may also explicitly
disable scanning with `set(CMAKE_CXX_SCAN_FOR_MODULES OFF)`.
We already propagate `CMAKE_CXX_STANDARD` into `try_compile` test
projects, so propagate `CMAKE_CXX_SCAN_FOR_MODULES` too.

Fixes: #25313
This commit is contained in:
Brad King
2023-10-10 11:14:50 -04:00
parent 308d687018
commit fd81024e80
4 changed files with 28 additions and 0 deletions
+2
View File
@@ -72,6 +72,7 @@ SETUP_LANGUAGE(swift_properties, Swift);
std::string const kCMAKE_CUDA_ARCHITECTURES = "CMAKE_CUDA_ARCHITECTURES";
std::string const kCMAKE_CUDA_RUNTIME_LIBRARY = "CMAKE_CUDA_RUNTIME_LIBRARY";
std::string const kCMAKE_CXX_SCAN_FOR_MODULES = "CMAKE_CXX_SCAN_FOR_MODULES";
std::string const kCMAKE_ENABLE_EXPORTS = "CMAKE_ENABLE_EXPORTS";
std::string const kCMAKE_EXECUTABLE_ENABLE_EXPORTS =
"CMAKE_EXECUTABLE_ENABLE_EXPORTS";
@@ -1082,6 +1083,7 @@ cm::optional<cmTryCompileResult> cmCoreTryCompile::TryCompileCode(
&swift_properties[lang_property_start + lang_property_size]);
vars.insert(kCMAKE_CUDA_ARCHITECTURES);
vars.insert(kCMAKE_CUDA_RUNTIME_LIBRARY);
vars.insert(kCMAKE_CXX_SCAN_FOR_MODULES);
vars.insert(kCMAKE_ENABLE_EXPORTS);
vars.insert(kCMAKE_EXECUTABLE_ENABLE_EXPORTS);
vars.insert(kCMAKE_SHARED_LIBRARY_ENABLE_EXPORTS);