ENH: fix more space problems, you can add args to the ExecProgram command separatly now

This commit is contained in:
Bill Hoffman
2002-04-03 16:14:06 -05:00
parent 1c73117b7a
commit d42055b283
9 changed files with 109 additions and 56 deletions

View File

@@ -25,16 +25,45 @@ bool cmExecProgramCommand::InitialPass(std::vector<std::string> const& args)
this->SetError("called with incorrect number of arguments");
return false;
}
std::string arguments;
bool doingargs = false;
int count = 0;
for(int i=0; i < args.size(); ++i)
{
if(doingargs)
{
arguments += args[i];
arguments += " ";
count++;
}
else if(args[i] == "ARGS")
{
count++;
doingargs = true;
}
}
std::string command;
if(arguments.size())
{
command = cmSystemTools::ConvertToOutputPath(args[0].c_str());
command += " ";
command += arguments;
}
else
{
command = args[0];
}
std::string output;
if(args.size() == 2)
if(args.size() - count == 2)
{
cmSystemTools::MakeDirectory(args[1].c_str());
cmSystemTools::RunCommand(args[0].c_str(), output,
cmSystemTools::RunCommand(command.c_str(), output,
cmSystemTools::ConvertToOutputPath(args[1].c_str()).c_str());
}
else
{
cmSystemTools::RunCommand(args[0].c_str(), output);
cmSystemTools::RunCommand(command.c_str(), output);
}
return true;
}