cmCMakeLanguageCommand: use `cmExperimental::FeatureByName`

stage/master/nightly/2024/04/11
Ben Boeckel 2024-04-10 00:56:32 -04:00
parent e8582abc6d
commit 46da8e64b0
1 changed files with 6 additions and 15 deletions

View File

@ -345,27 +345,18 @@ bool cmCMakeLanguageCommandGET_EXPERIMENTAL_FEATURE_ENABLED(
auto const& featureName = expandedArgs[1];
auto const& variableName = expandedArgs[2];
auto feature = cmExperimental::Feature::Sentinel;
for (std::size_t i = 0;
i < static_cast<std::size_t>(cmExperimental::Feature::Sentinel); i++) {
if (cmExperimental::DataForFeature(static_cast<cmExperimental::Feature>(i))
.Name == featureName) {
feature = static_cast<cmExperimental::Feature>(i);
break;
if (auto feature = cmExperimental::FeatureByName(featureName)) {
if (cmExperimental::HasSupportEnabled(makefile, *feature)) {
makefile.AddDefinition(variableName, "TRUE");
} else {
makefile.AddDefinition(variableName, "FALSE");
}
}
if (feature == cmExperimental::Feature::Sentinel) {
} else {
return FatalError(status,
cmStrCat("Experimental feature name \"", featureName,
"\" does not exist."));
}
if (cmExperimental::HasSupportEnabled(makefile, feature)) {
makefile.AddDefinition(variableName, "TRUE");
} else {
makefile.AddDefinition(variableName, "FALSE");
}
return true;
}
}