summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmFileCommand.cxx21
1 files changed, 19 insertions, 2 deletions
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx
index 79ade87..c7348b7 100644
--- a/Source/cmFileCommand.cxx
+++ b/Source/cmFileCommand.cxx
@@ -1216,10 +1216,27 @@ bool cmFileCopier::CheckValue(std::string const& arg)
switch(this->Doing)
{
case DoingFiles:
- this->Files.push_back(arg);
+ if(arg.empty() || cmSystemTools::FileIsFullPath(arg.c_str()))
+ {
+ this->Files.push_back(arg);
+ }
+ else
+ {
+ std::string file = this->Makefile->GetCurrentDirectory();
+ file += "/" + arg;
+ this->Files.push_back(file);
+ }
break;
case DoingDestination:
- this->Destination = arg;
+ if(arg.empty() || cmSystemTools::FileIsFullPath(arg.c_str()))
+ {
+ this->Destination = arg;
+ }
+ else
+ {
+ this->Destination = this->Makefile->GetCurrentOutputDirectory();
+ this->Destination += "/" + arg;
+ }
this->Doing = DoingNone;
break;
case DoingRegex: