diff options
author | Brad King <brad.king@kitware.com> | 2014-05-29 13:58:47 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2014-05-29 13:58:47 (GMT) |
commit | 8afbb346c67c60dcf9383f5e58307d629eafb855 (patch) | |
tree | e927b24f33701f9721e63d05185f4340da1b1ba8 /Source | |
parent | 7e011a3db33b7979906482776c3747b42e1d2887 (diff) | |
parent | c4af46b4443374f0a0a64bb7db87750454cc3dac (diff) | |
download | CMake-8afbb346c67c60dcf9383f5e58307d629eafb855.zip CMake-8afbb346c67c60dcf9383f5e58307d629eafb855.tar.gz CMake-8afbb346c67c60dcf9383f5e58307d629eafb855.tar.bz2 |
Merge topic 'normalize-custom-command-paths'
c4af46b4 add_custom_command: Normalize OUTPUT and DEPENDS paths.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmAddCustomCommandCommand.cxx | 4 | ||||
-rw-r--r-- | Source/cmCustomCommandGenerator.cxx | 12 |
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; |