diff options
Diffstat (limited to 'Source/cmFileCommand.cxx')
-rw-r--r-- | Source/cmFileCommand.cxx | 21 |
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: |