mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-07 22:30:13 -06:00
cmStandardLevelResolver: Add method to look up standard level by name
This commit is contained in:
@@ -457,6 +457,19 @@ struct StandardLevelComputer
|
||||
return maxLevel;
|
||||
}
|
||||
|
||||
cm::optional<cmStandardLevel> LanguageStandardLevel(
|
||||
std::string const& standardStr) const
|
||||
{
|
||||
cm::optional<cmStandardLevel> langLevel;
|
||||
auto const& stds = this->Levels;
|
||||
auto stdIt =
|
||||
std::find(cm::cbegin(stds), cm::cend(stds), ParseStd(standardStr));
|
||||
if (stdIt != cm::cend(stds)) {
|
||||
langLevel = cmStandardLevel(std::distance(cm::cbegin(stds), stdIt));
|
||||
}
|
||||
return langLevel;
|
||||
}
|
||||
|
||||
bool IsLaterStandard(int lhs, int rhs) const
|
||||
{
|
||||
auto rhsIt =
|
||||
@@ -661,6 +674,16 @@ cmStandardLevelResolver::CompileFeatureStandardLevel(
|
||||
return mapping->second.CompileFeatureStandardLevel(this->Makefile, feature);
|
||||
}
|
||||
|
||||
cm::optional<cmStandardLevel> cmStandardLevelResolver::LanguageStandardLevel(
|
||||
std::string const& lang, std::string const& standardStr) const
|
||||
{
|
||||
auto mapping = StandardComputerMapping.find(lang);
|
||||
if (mapping == cm::cend(StandardComputerMapping)) {
|
||||
return cm::nullopt;
|
||||
}
|
||||
return mapping->second.LanguageStandardLevel(standardStr);
|
||||
}
|
||||
|
||||
cmValue cmStandardLevelResolver::CompileFeaturesAvailable(
|
||||
const std::string& lang, std::string* error) const
|
||||
{
|
||||
|
||||
@@ -39,6 +39,9 @@ public:
|
||||
cm::optional<cmStandardLevel> CompileFeatureStandardLevel(
|
||||
std::string const& lang, std::string const& feature) const;
|
||||
|
||||
cm::optional<cmStandardLevel> LanguageStandardLevel(
|
||||
std::string const& lang, std::string const& standardStr) const;
|
||||
|
||||
cmValue CompileFeaturesAvailable(const std::string& lang,
|
||||
std::string* error) const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user