diff options
author | Nils Gladitz <nilsgladitz@gmail.com> | 2015-12-10 16:38:18 (GMT) |
---|---|---|
committer | Nils Gladitz <nilsgladitz@gmail.com> | 2015-12-10 16:38:18 (GMT) |
commit | ecdc77f14d7a37f9d173ea2ca4946bf51c6a43d0 (patch) | |
tree | d7bfccd51f93d9e8aa5b5743a6df4451dc249d38 /Source/CPack/WiX | |
parent | fc6c5074e800fb7fe3f829564d7a7e284133cdd9 (diff) | |
download | CMake-ecdc77f14d7a37f9d173ea2ca4946bf51c6a43d0.zip CMake-ecdc77f14d7a37f9d173ea2ca4946bf51c6a43d0.tar.gz CMake-ecdc77f14d7a37f9d173ea2ca4946bf51c6a43d0.tar.bz2 |
CPackWIX: Fix installed file property lookups when using components
The WIX generator incorrectly looked for installed file properties
by relative paths that included the component specific staging
directory prefix.
Remove that prefix in installed file property lookups when
generating packages with components.
Diffstat (limited to 'Source/CPack/WiX')
-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; |