|
|
@ -20,18 +20,26 @@ |
|
|
|
// cmIncludeCommand
|
|
|
|
bool cmIncludeCommand::InitialPass(std::vector<std::string>& args) |
|
|
|
{ |
|
|
|
if (args.size()< 1) |
|
|
|
if (args.size()< 1 || args.size() > 2) |
|
|
|
{ |
|
|
|
this->SetError("called with wrong number of arguments."); |
|
|
|
this->SetError("called with wrong number of arguments. " |
|
|
|
"Include only takes one file."); |
|
|
|
} |
|
|
|
|
|
|
|
for( unsigned int i=0; i< args.size(); i++) |
|
|
|
m_Makefile->ExpandVariablesInString( args[0]); |
|
|
|
bool exists = cmSystemTools::FileExists(args[0].c_str()); |
|
|
|
if(args.size() == 2 && args[1] == "OPTIONAL" && !exists) |
|
|
|
{ |
|
|
|
m_Makefile->ExpandVariablesInString( args[i]); |
|
|
|
m_Makefile->ReadListFile( m_Makefile->GetCurrentListFile(), |
|
|
|
args[i].c_str()); |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
if(!exists) |
|
|
|
{ |
|
|
|
std::string error = "Include file not found: " + args[0]; |
|
|
|
this->SetError(error.c_str()); |
|
|
|
return false; |
|
|
|
} |
|
|
|
m_Makefile->ReadListFile( m_Makefile->GetCurrentListFile(), |
|
|
|
args[0].c_str()); |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|