summaryrefslogtreecommitdiffstats
path: root/Source/CPack/WiX/cmCPackWIXGenerator.cxx
diff options
context:
space:
mode:
authorNils Gladitz <nilsgladitz@gmail.com>2015-12-10 16:38:18 (GMT)
committerNils Gladitz <nilsgladitz@gmail.com>2015-12-10 16:38:18 (GMT)
commitecdc77f14d7a37f9d173ea2ca4946bf51c6a43d0 (patch)
treed7bfccd51f93d9e8aa5b5743a6df4451dc249d38 /Source/CPack/WiX/cmCPackWIXGenerator.cxx
parentfc6c5074e800fb7fe3f829564d7a7e284133cdd9 (diff)
downloadCMake-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/cmCPackWIXGenerator.cxx')
-rw-r--r--Source/CPack/WiX/cmCPackWIXGenerator.cxx23
1 files changed, 19 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);
+}