ENH: Added partial implementation of recognizing per-configration properties.
This commit is contained in:
parent
da335fbd00
commit
34c04d6d02
|
@ -3324,6 +3324,15 @@ void cmake::ReportUndefinedPropertyAccesses(const char *filename)
|
||||||
std::vector<std::string> enLangs;
|
std::vector<std::string> enLangs;
|
||||||
this->GlobalGenerator->GetEnabledLanguages(enLangs);
|
this->GlobalGenerator->GetEnabledLanguages(enLangs);
|
||||||
|
|
||||||
|
// Common configuration names.
|
||||||
|
// TODO: Compute current configuration(s).
|
||||||
|
std::vector<std::string> enConfigs;
|
||||||
|
enConfigs.push_back("");
|
||||||
|
enConfigs.push_back("DEBUG");
|
||||||
|
enConfigs.push_back("RELEASE");
|
||||||
|
enConfigs.push_back("MINSIZEREL");
|
||||||
|
enConfigs.push_back("RELWITHDEBINFO");
|
||||||
|
|
||||||
// take all the defined properties and add definitions for all the enabled
|
// take all the defined properties and add definitions for all the enabled
|
||||||
// languages
|
// languages
|
||||||
std::set<std::pair<cmStdString,cmProperty::ScopeType> > aliasedProperties;
|
std::set<std::pair<cmStdString,cmProperty::ScopeType> > aliasedProperties;
|
||||||
|
@ -3334,7 +3343,20 @@ void cmake::ReportUndefinedPropertyAccesses(const char *filename)
|
||||||
cmPropertyDefinitionMap::iterator j;
|
cmPropertyDefinitionMap::iterator j;
|
||||||
for (j = i->second.begin(); j != i->second.end(); ++j)
|
for (j = i->second.begin(); j != i->second.end(); ++j)
|
||||||
{
|
{
|
||||||
if (j->first.find("<LANG>"))
|
// TODO: What if both <LANG> and <CONFIG> appear?
|
||||||
|
if (j->first.find("<CONFIG>") != std::string::npos)
|
||||||
|
{
|
||||||
|
std::vector<std::string>::const_iterator k;
|
||||||
|
for (k = enConfigs.begin(); k != enConfigs.end(); ++k)
|
||||||
|
{
|
||||||
|
std::string tmp = j->first;
|
||||||
|
cmSystemTools::ReplaceString(tmp, "<CONFIG>", k->c_str());
|
||||||
|
// add alias
|
||||||
|
aliasedProperties.insert
|
||||||
|
(std::pair<cmStdString,cmProperty::ScopeType>(tmp,i->first));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (j->first.find("<LANG>") != std::string::npos)
|
||||||
{
|
{
|
||||||
std::vector<std::string>::const_iterator k;
|
std::vector<std::string>::const_iterator k;
|
||||||
for (k = enLangs.begin(); k != enLangs.end(); ++k)
|
for (k = enLangs.begin(); k != enLangs.end(); ++k)
|
||||||
|
|
Loading…
Reference in New Issue