diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2002-04-03 21:14:06 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2002-04-03 21:14:06 (GMT) |
commit | d42055b283496e3259a89db9aa9074f4169bcf34 (patch) | |
tree | a2f35c6fc56e7e313c6c091b2f4903b79d922822 /Source/cmExecProgramCommand.cxx | |
parent | 1c73117b7add8578bfe1abc3db7de754496e2453 (diff) | |
download | CMake-d42055b283496e3259a89db9aa9074f4169bcf34.zip CMake-d42055b283496e3259a89db9aa9074f4169bcf34.tar.gz CMake-d42055b283496e3259a89db9aa9074f4169bcf34.tar.bz2 |
ENH: fix more space problems, you can add args to the ExecProgram command separatly now
Diffstat (limited to 'Source/cmExecProgramCommand.cxx')
-rw-r--r-- | Source/cmExecProgramCommand.cxx | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/Source/cmExecProgramCommand.cxx b/Source/cmExecProgramCommand.cxx index aea6950..7e1ad76 100644 --- a/Source/cmExecProgramCommand.cxx +++ b/Source/cmExecProgramCommand.cxx @@ -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; } |