From 12e4bc73cba0218a3e9a9a23d43f7b3d7d8e004e Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Mon, 28 Nov 2022 17:56:17 -0500 Subject: MSVC: don't opt into dyndep support Instead, just set the variables for how scanning works since that is part of the compiler mechanisms. Fixes: #24198 --- .gitlab/ci/cxx_modules_rules_msvc.cmake | 2 ++ Help/dev/experimental.rst | 3 ++- Modules/Compiler/MSVC-CXX.cmake | 1 - 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitlab/ci/cxx_modules_rules_msvc.cmake b/.gitlab/ci/cxx_modules_rules_msvc.cmake index 2b09b0e..cb327fd 100644 --- a/.gitlab/ci/cxx_modules_rules_msvc.cmake +++ b/.gitlab/ci/cxx_modules_rules_msvc.cmake @@ -1 +1,3 @@ set(CMake_TEST_CXXModules_UUID "a246741c-d067-4019-a8fb-3d16b0c9d1d3") + +set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1) diff --git a/Help/dev/experimental.rst b/Help/dev/experimental.rst index 78770f7..03eb076 100644 --- a/Help/dev/experimental.rst +++ b/Help/dev/experimental.rst @@ -41,7 +41,8 @@ to tell CMake how to invoke the C++20 module dependency scanning tool. MSVC 19.34 (provided with Visual Studio 17.4) and above contains the support that CMake needs and has these variables already set up as required and only -the UUID variable needs to be set. +the UUID and the ``CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP`` variables need to be +set. For example, add code like the following to a test project: diff --git a/Modules/Compiler/MSVC-CXX.cmake b/Modules/Compiler/MSVC-CXX.cmake index 212f6d1..10a9073 100644 --- a/Modules/Compiler/MSVC-CXX.cmake +++ b/Modules/Compiler/MSVC-CXX.cmake @@ -79,7 +79,6 @@ elseif (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0) endif() if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "19.34") - set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP 1) string(CONCAT CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE " -nologo -TP" " -showIncludes" -- cgit v0.12