ENH: some cleanup of get property commands
This commit is contained in:
parent
15f21aa74c
commit
8c641677e9
|
@ -28,7 +28,6 @@ bool cmGetDirectoryPropertyCommand::InitialPass(
|
|||
return false;
|
||||
}
|
||||
|
||||
std::vector<std::string>::size_type cc;
|
||||
std::vector<std::string>::const_iterator i = args.begin();
|
||||
std::string variable = *i;
|
||||
++i;
|
||||
|
@ -76,72 +75,7 @@ bool cmGetDirectoryPropertyCommand::InitialPass(
|
|||
// OK, now we have the directory to process, we just get the requested
|
||||
// information out of it
|
||||
|
||||
if ( *i == "VARIABLES" || *i == "CACHE_VARIABLES" )
|
||||
{
|
||||
int cacheonly = 0;
|
||||
if ( *i == "CACHE_VARIABLES" )
|
||||
{
|
||||
cacheonly = 1;
|
||||
}
|
||||
std::vector<std::string> vars = dir->GetDefinitions(cacheonly);
|
||||
for ( cc = 0; cc < vars.size(); cc ++ )
|
||||
{
|
||||
if ( cc > 0 )
|
||||
{
|
||||
output += ";";
|
||||
}
|
||||
output += vars[cc];
|
||||
}
|
||||
}
|
||||
else if ( *i == "MACROS" )
|
||||
{
|
||||
dir->GetListOfMacros(output);
|
||||
}
|
||||
else if ( *i == "DEFINITIONS" )
|
||||
{
|
||||
output = dir->GetDefineFlags();
|
||||
}
|
||||
else if ( *i == "INCLUDE_DIRECTORIES" )
|
||||
{
|
||||
std::vector<std::string>::iterator it;
|
||||
int first = 1;
|
||||
cmOStringStream str;
|
||||
for ( it = dir->GetIncludeDirectories().begin();
|
||||
it != dir->GetIncludeDirectories().end();
|
||||
++ it )
|
||||
{
|
||||
if ( !first )
|
||||
{
|
||||
str << ";";
|
||||
}
|
||||
str << it->c_str();
|
||||
first = 0;
|
||||
}
|
||||
output = str.str();
|
||||
}
|
||||
else if ( *i == "INCLUDE_REGULAR_EXPRESSION" )
|
||||
{
|
||||
output = dir->GetIncludeRegularExpression();
|
||||
}
|
||||
else if ( *i == "LINK_DIRECTORIES" )
|
||||
{
|
||||
std::vector<std::string>::iterator it;
|
||||
int first = 1;
|
||||
cmOStringStream str;
|
||||
for ( it = dir->GetLinkDirectories().begin();
|
||||
it != dir->GetLinkDirectories().end();
|
||||
++ it )
|
||||
{
|
||||
if ( !first )
|
||||
{
|
||||
str << ";";
|
||||
}
|
||||
str << it->c_str();
|
||||
first = 0;
|
||||
}
|
||||
output = str.str();
|
||||
}
|
||||
else if ( *i == "DEFINITION" )
|
||||
if ( *i == "DEFINITION" )
|
||||
{
|
||||
++i;
|
||||
if (i == args.end())
|
||||
|
@ -151,20 +85,16 @@ bool cmGetDirectoryPropertyCommand::InitialPass(
|
|||
return false;
|
||||
}
|
||||
output = dir->GetSafeDefinition(i->c_str());
|
||||
this->Makefile->AddDefinition(variable.c_str(), output.c_str());
|
||||
}
|
||||
else
|
||||
|
||||
const char *prop = dir->GetProperty(i->c_str());
|
||||
if (prop)
|
||||
{
|
||||
const char *prop = dir->GetProperty(i->c_str());
|
||||
if (prop)
|
||||
{
|
||||
this->Makefile->AddDefinition(variable.c_str(), prop);
|
||||
return true;
|
||||
}
|
||||
this->Makefile->AddDefinition(variable.c_str(), "");
|
||||
this->Makefile->AddDefinition(variable.c_str(), prop);
|
||||
return true;
|
||||
}
|
||||
this->Makefile->AddDefinition(variable.c_str(), output.c_str());
|
||||
|
||||
this->Makefile->AddDefinition(variable.c_str(), "");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -2614,6 +2614,79 @@ const char *cmMakefile::GetProperty(const char* prop,
|
|||
this->SetProperty("LISTFILE_STACK",tmp.c_str());
|
||||
}
|
||||
|
||||
// some other special properties sigh
|
||||
std::string output = "";
|
||||
if (!strcmp("VARIABLES",prop) || !strcmp("CACHE_VARIABLES",prop))
|
||||
{
|
||||
int cacheonly = 0;
|
||||
if ( !strcmp("CACHE_VARIABLES",prop) )
|
||||
{
|
||||
cacheonly = 1;
|
||||
}
|
||||
std::vector<std::string> vars = this->GetDefinitions(cacheonly);
|
||||
for (unsigned int cc = 0; cc < vars.size(); cc ++ )
|
||||
{
|
||||
if ( cc > 0 )
|
||||
{
|
||||
output += ";";
|
||||
}
|
||||
output += vars[cc];
|
||||
}
|
||||
this->SetProperty(prop, output.c_str());
|
||||
}
|
||||
else if (!strcmp("MACROS",prop))
|
||||
{
|
||||
this->GetListOfMacros(output);
|
||||
this->SetProperty(prop, output.c_str());
|
||||
}
|
||||
else if (!strcmp("DEFINITIONS",prop))
|
||||
{
|
||||
output = this->GetDefineFlags();
|
||||
this->SetProperty(prop, output.c_str());
|
||||
}
|
||||
else if (!strcmp("INCLUDE_DIRECTORIES",prop) )
|
||||
{
|
||||
std::vector<std::string>::iterator it;
|
||||
int first = 1;
|
||||
cmOStringStream str;
|
||||
for ( it = this->GetIncludeDirectories().begin();
|
||||
it != this->GetIncludeDirectories().end();
|
||||
++ it )
|
||||
{
|
||||
if ( !first )
|
||||
{
|
||||
str << ";";
|
||||
}
|
||||
str << it->c_str();
|
||||
first = 0;
|
||||
}
|
||||
output = str.str();
|
||||
this->SetProperty(prop, output.c_str());
|
||||
}
|
||||
else if (!strcmp("INCLUDE_REGULAR_EXPRESSION",prop) )
|
||||
{
|
||||
return this->GetIncludeRegularExpression();
|
||||
}
|
||||
else if (!strcmp("LINK_DIRECTORIES",prop))
|
||||
{
|
||||
std::vector<std::string>::iterator it;
|
||||
int first = 1;
|
||||
cmOStringStream str;
|
||||
for ( it = this->GetLinkDirectories().begin();
|
||||
it != this->GetLinkDirectories().end();
|
||||
++ it )
|
||||
{
|
||||
if ( !first )
|
||||
{
|
||||
str << ";";
|
||||
}
|
||||
str << it->c_str();
|
||||
first = 0;
|
||||
}
|
||||
output = str.str();
|
||||
this->SetProperty(prop, output.c_str());
|
||||
}
|
||||
|
||||
bool chain = false;
|
||||
const char *retVal =
|
||||
this->Properties.GetPropertyValue(prop, scope, chain);
|
||||
|
|
Loading…
Reference in New Issue