diff options
-rw-r--r-- | Source/CPack/WiX/cmCPackWIXGenerator.cxx | 23 | ||||
-rw-r--r-- | Source/CPack/WiX/cmCPackWIXGenerator.h | 3 |
2 files changed, 22 insertions, 4 deletions
diff --git a/Source/CPack/WiX/cmCPackWIXGenerator.cxx b/Source/CPack/WiX/cmCPackWIXGenerator.cxx index d5246db..da8b486 100644 --- a/Source/CPack/WiX/cmCPackWIXGenerator.cxx +++ b/Source/CPack/WiX/cmCPackWIXGenerator.cxx @@ -911,8 +911,9 @@ void cmCPackWIXGenerator::AddDirectoryAndFileDefinitons( relativeDirectoryPath = "."; } - cmInstalledFile const* directoryInstalledFile = - this->GetInstalledFile(relativeDirectoryPath); + cmInstalledFile const* directoryInstalledFile = this->GetInstalledFile( + this->RelativePathWithoutComponentPrefix(relativeDirectoryPath) + ); bool emptyDirectory = dir.GetNumberOfFiles() == 2; bool createDirectory = false; @@ -980,8 +981,9 @@ void cmCPackWIXGenerator::AddDirectoryAndFileDefinitons( } else { - cmInstalledFile const* installedFile = - this->GetInstalledFile(relativePath); + cmInstalledFile const* installedFile = this->GetInstalledFile( + this->RelativePathWithoutComponentPrefix(relativePath) + ); if(installedFile) { @@ -1230,3 +1232,16 @@ void cmCPackWIXGenerator::AddCustomFlags( stream << " " << QuotePath(*i); } } + +std::string cmCPackWIXGenerator::RelativePathWithoutComponentPrefix( + std::string const& path) +{ + if(this->Components.empty()) + { + return path; + } + + std::string::size_type pos = path.find('/'); + + return path.substr(pos + 1); +} diff --git a/Source/CPack/WiX/cmCPackWIXGenerator.h b/Source/CPack/WiX/cmCPackWIXGenerator.h index d501609..3f66b2c 100644 --- a/Source/CPack/WiX/cmCPackWIXGenerator.h +++ b/Source/CPack/WiX/cmCPackWIXGenerator.h @@ -168,6 +168,9 @@ private: void AddCustomFlags( std::string const& variableName, std::ostream& stream); + std::string RelativePathWithoutComponentPrefix( + std::string const& path); + std::vector<std::string> WixSources; id_map_t PathToIdMap; ambiguity_map_t IdAmbiguityCounter; |