summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/cmAddCustomCommandCommand.cxx4
-rw-r--r--Source/cmCustomCommandGenerator.cxx12
2 files changed, 15 insertions, 1 deletions
diff --git a/Source/cmAddCustomCommandCommand.cxx b/Source/cmAddCustomCommandCommand.cxx
index d5f00ff..6a95550 100644
--- a/Source/cmAddCustomCommandCommand.cxx
+++ b/Source/cmAddCustomCommandCommand.cxx
@@ -173,6 +173,10 @@ bool cmAddCustomCommandCommand
break;
}
+ if (cmSystemTools::FileIsFullPath(filename.c_str()))
+ {
+ filename = cmSystemTools::CollapseFullPath(filename);
+ }
switch (doing)
{
case doing_working_directory:
diff --git a/Source/cmCustomCommandGenerator.cxx b/Source/cmCustomCommandGenerator.cxx
index cebd9f5..ebfbf7c 100644
--- a/Source/cmCustomCommandGenerator.cxx
+++ b/Source/cmCustomCommandGenerator.cxx
@@ -103,8 +103,18 @@ std::vector<std::string> const& cmCustomCommandGenerator::GetDepends() const
{
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge
= this->GE->Parse(*i);
+ std::vector<std::string> result;
cmSystemTools::ExpandListArgument(
- cge->Evaluate(this->Makefile, this->Config), this->Depends);
+ cge->Evaluate(this->Makefile, this->Config), result);
+ for (std::vector<std::string>::iterator it = result.begin();
+ it != result.end(); ++it)
+ {
+ if (cmSystemTools::FileIsFullPath(it->c_str()))
+ {
+ *it = cmSystemTools::CollapseFullPath(*it);
+ }
+ }
+ this->Depends.insert(this->Depends.end(), result.begin(), result.end());
}
}
return this->Depends;