Merge topic 'wix-fix-comp-install-prop'

ecdc77f1 CPackWIX: Fix installed file property lookups when using components
This commit is contained in:
Brad King 2015-12-11 09:43:48 -05:00 committed by CMake Topic Stage
commit c634b5d4c5
2 changed files with 22 additions and 4 deletions

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);
}

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;