summaryrefslogtreecommitdiffstats
path: root/Source/cmCustomCommandGenerator.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmCustomCommandGenerator.cxx')
-rw-r--r--Source/cmCustomCommandGenerator.cxx111
1 files changed, 47 insertions, 64 deletions
diff --git a/Source/cmCustomCommandGenerator.cxx b/Source/cmCustomCommandGenerator.cxx
index 4a19160..99bb601 100644
--- a/Source/cmCustomCommandGenerator.cxx
+++ b/Source/cmCustomCommandGenerator.cxx
@@ -17,11 +17,16 @@
#include "cmMakefile.h"
#include "cmOutputConverter.h"
-cmCustomCommandGenerator::cmCustomCommandGenerator(
- cmCustomCommand const& cc, const std::string& config, cmLocalGenerator* lg):
- CC(cc), Config(config), LG(lg),
- OldStyle(cc.GetEscapeOldStyle()), MakeVars(cc.GetEscapeAllowMakeVars()),
- GE(new cmGeneratorExpression(cc.GetBacktrace())), DependsDone(false)
+cmCustomCommandGenerator::cmCustomCommandGenerator(cmCustomCommand const& cc,
+ const std::string& config,
+ cmLocalGenerator* lg)
+ : CC(cc)
+ , Config(config)
+ , LG(lg)
+ , OldStyle(cc.GetEscapeOldStyle())
+ , MakeVars(cc.GetEscapeAllowMakeVars())
+ , GE(new cmGeneratorExpression(cc.GetBacktrace()))
+ , DependsDone(false)
{
}
@@ -38,34 +43,28 @@ unsigned int cmCustomCommandGenerator::GetNumberOfCommands() const
bool cmCustomCommandGenerator::UseCrossCompilingEmulator(unsigned int c) const
{
std::string const& argv0 = this->CC.GetCommandLines()[c][0];
- cmGeneratorTarget* target =
- this->LG->FindGeneratorTargetToUse(argv0);
- if(target && target->GetType() == cmState::EXECUTABLE)
- {
+ cmGeneratorTarget* target = this->LG->FindGeneratorTargetToUse(argv0);
+ if (target && target->GetType() == cmState::EXECUTABLE) {
return target->GetProperty("CROSSCOMPILING_EMULATOR") != 0;
- }
+ }
return false;
}
std::string cmCustomCommandGenerator::GetCommand(unsigned int c) const
{
std::string const& argv0 = this->CC.GetCommandLines()[c][0];
- cmGeneratorTarget* target =
- this->LG->FindGeneratorTargetToUse(argv0);
- if(target && target->GetType() == cmState::EXECUTABLE &&
- (target->IsImported()
- || !this->LG->GetMakefile()->IsOn("CMAKE_CROSSCOMPILING")))
- {
+ cmGeneratorTarget* target = this->LG->FindGeneratorTargetToUse(argv0);
+ if (target && target->GetType() == cmState::EXECUTABLE &&
+ (target->IsImported() ||
+ !this->LG->GetMakefile()->IsOn("CMAKE_CROSSCOMPILING"))) {
return target->GetLocation(this->Config);
- }
- if (target && target->GetType() == cmState::EXECUTABLE)
- {
+ }
+ if (target && target->GetType() == cmState::EXECUTABLE) {
const char* emulator = target->GetProperty("CROSSCOMPILING_EMULATOR");
- if (emulator)
- {
- return std::string(emulator);
- }
+ if (emulator) {
+ return std::string(emulator);
}
+ }
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = this->GE->Parse(argv0);
std::string exe = cge->Evaluate(this->LG, this->Config);
@@ -80,53 +79,43 @@ std::string escapeForShellOldStyle(const std::string& str)
// if there are spaces
std::string temp = str;
if (temp.find(" ") != std::string::npos &&
- temp.find("\"")==std::string::npos)
- {
+ temp.find("\"") == std::string::npos) {
result = "\"";
result += str;
result += "\"";
return result;
- }
+ }
return str;
#else
- for(const char* ch = str.c_str(); *ch != '\0'; ++ch)
- {
- if(*ch == ' ')
- {
+ for (const char* ch = str.c_str(); *ch != '\0'; ++ch) {
+ if (*ch == ' ') {
result += '\\';
- }
- result += *ch;
}
+ result += *ch;
+ }
return result;
#endif
}
-void
-cmCustomCommandGenerator
-::AppendArguments(unsigned int c, std::string& cmd) const
+void cmCustomCommandGenerator::AppendArguments(unsigned int c,
+ std::string& cmd) const
{
unsigned int offset = 1;
- if (this->UseCrossCompilingEmulator(c))
- {
+ if (this->UseCrossCompilingEmulator(c)) {
offset = 0;
- }
+ }
cmCustomCommandLine const& commandLine = this->CC.GetCommandLines()[c];
- for(unsigned int j=offset;j < commandLine.size(); ++j)
- {
+ for (unsigned int j = offset; j < commandLine.size(); ++j) {
std::string arg =
- this->GE->Parse(commandLine[j])->Evaluate(this->LG,
- this->Config);
+ this->GE->Parse(commandLine[j])->Evaluate(this->LG, this->Config);
cmd += " ";
- if(this->OldStyle)
- {
+ if (this->OldStyle) {
cmd += escapeForShellOldStyle(arg);
- }
- else
- {
+ } else {
cmOutputConverter converter(this->LG->GetStateSnapshot());
cmd += converter.EscapeForShell(arg, this->MakeVars);
- }
}
+ }
}
const char* cmCustomCommandGenerator::GetComment() const
@@ -151,29 +140,23 @@ std::vector<std::string> const& cmCustomCommandGenerator::GetByproducts() const
std::vector<std::string> const& cmCustomCommandGenerator::GetDepends() const
{
- if (!this->DependsDone)
- {
+ if (!this->DependsDone) {
this->DependsDone = true;
std::vector<std::string> depends = this->CC.GetDepends();
- for(std::vector<std::string>::const_iterator
- i = depends.begin();
- i != depends.end(); ++i)
- {
- cmsys::auto_ptr<cmCompiledGeneratorExpression> cge
- = this->GE->Parse(*i);
+ for (std::vector<std::string>::const_iterator i = depends.begin();
+ i != depends.end(); ++i) {
+ cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = this->GE->Parse(*i);
std::vector<std::string> result;
- cmSystemTools::ExpandListArgument(
- cge->Evaluate(this->LG, this->Config), result);
+ cmSystemTools::ExpandListArgument(cge->Evaluate(this->LG, this->Config),
+ result);
for (std::vector<std::string>::iterator it = result.begin();
- it != result.end(); ++it)
- {
- if (cmSystemTools::FileIsFullPath(it->c_str()))
- {
+ it != result.end(); ++it) {
+ if (cmSystemTools::FileIsFullPath(it->c_str())) {
*it = cmSystemTools::CollapseFullPath(*it);
- }
}
- this->Depends.insert(this->Depends.end(), result.begin(), result.end());
}
+ this->Depends.insert(this->Depends.end(), result.begin(), result.end());
}
+ }
return this->Depends;
}