diff options
-rw-r--r-- | Source/cmCMakeLanguageCommand.cxx | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/Source/cmCMakeLanguageCommand.cxx b/Source/cmCMakeLanguageCommand.cxx index 9ffc363..fe9257e 100644 --- a/Source/cmCMakeLanguageCommand.cxx +++ b/Source/cmCMakeLanguageCommand.cxx @@ -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; } } |