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.
This commit is contained in:
Nils Gladitz committed 2015-12-10 17:38:18 +01:00
1 parent fc6c5074e8
commit ecdc77f14d
2 files changed
+22 -4

No files matched your search

+19 -4
View File
@@ -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);
}
+3
View File
@@ -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;