diff options
Diffstat (limited to 'Source/cmInstallDirectoryGenerator.cxx')
-rw-r--r-- | Source/cmInstallDirectoryGenerator.cxx | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Source/cmInstallDirectoryGenerator.cxx b/Source/cmInstallDirectoryGenerator.cxx index 3928231..469b119 100644 --- a/Source/cmInstallDirectoryGenerator.cxx +++ b/Source/cmInstallDirectoryGenerator.cxx @@ -13,6 +13,7 @@ #include "cmGeneratorExpression.h" #include "cmLocalGenerator.h" +#include "cmMakefile.h" cmInstallDirectoryGenerator::cmInstallDirectoryGenerator( std::vector<std::string> const& dirs, const char* dest, @@ -73,6 +74,16 @@ void cmInstallDirectoryGenerator::GenerateScriptForConfig( cmSystemTools::ExpandListArgument( cge->Evaluate(this->LocalGenerator, config), dirs); } + + // Make sure all dirs have absolute paths. + cmMakefile const& mf = *this->LocalGenerator->GetMakefile(); + for (std::vector<std::string>::iterator i = dirs.begin(); i != dirs.end(); + ++i) { + if (!cmSystemTools::FileIsFullPath(i->c_str())) { + *i = std::string(mf.GetCurrentSourceDirectory()) + "/" + *i; + } + } + this->AddDirectoryInstallRule(os, config, indent, dirs); } |