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;
|
||||
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
|
||||
// languages
|
||||
std::set<std::pair<cmStdString,cmProperty::ScopeType> > aliasedProperties;
|
||||
|
@ -3334,7 +3343,20 @@ void cmake::ReportUndefinedPropertyAccesses(const char *filename)
|
|||
cmPropertyDefinitionMap::iterator 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;
|
||||
for (k = enLangs.begin(); k != enLangs.end(); ++k)
|
||||
|
|
Loading…
Reference in New Issue