cmExperimental: only forward C++ module support to non-ABI checks

ABI checks never use modules, so don't forward the experimental status
through.
This commit is contained in:
Ben Boeckel
2023-07-19 16:41:49 -04:00
parent 1a538ae07c
commit f6cf433256
3 changed files with 7 additions and 3 deletions

View File

@@ -1078,7 +1078,11 @@ cm::optional<cmTryCompileResult> cmCoreTryCompile::TryCompileCode(
auto const& data = cmExperimental::DataForFeature(
static_cast<cmExperimental::Feature>(i));
if (data.ForwardThroughTryCompile ==
cmExperimental::TryCompileCondition::Always) {
cmExperimental::TryCompileCondition::Always ||
(data.ForwardThroughTryCompile ==
cmExperimental::TryCompileCondition::SkipCompilerChecks &&
arguments.CMakeInternal != "ABI"_s &&
arguments.CMakeInternal != "FEATURE_TESTING"_s)) {
vars.insert(data.Variable);
}
}

View File

@@ -24,8 +24,7 @@ cmExperimental::FeatureData LookupTable[] = {
"CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API",
"CMake's C++ module support is experimental. It is meant only for "
"experimentation and feedback to CMake developers.",
// https://gitlab.kitware.com/cmake/cmake/-/issues/25097
cmExperimental::TryCompileCondition::Never, false },
cmExperimental::TryCompileCondition::SkipCompilerChecks, false },
// WindowsKernelModeDriver
{ "WindowsKernelModeDriver", "5c2d848d-4efa-4529-a768-efd57171bf68",
"CMAKE_EXPERIMENTAL_WINDOWS_KERNEL_MODE_DRIVER",

View File

@@ -23,6 +23,7 @@ public:
enum class TryCompileCondition
{
Always,
SkipCompilerChecks,
Never,
};