Merge topic 'ifw-installer-icon-filenames'

761b6e2466 CPackIFW: Avoid colliding names for icons / logos

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6613
This commit is contained in:
Craig Scott
2021-10-15 12:38:40 +00:00
committed by Kitware Robot
+12 -4
View File
@@ -381,7 +381,9 @@ void cmCPackIFWInstaller::GenerateInstallerFile()
// Logo
if (!this->Logo.empty()) {
std::string name = cmSystemTools::GetFilenameName(this->Logo);
std::string srcName = cmSystemTools::GetFilenameName(this->Logo);
std::string suffix = cmSystemTools::GetFilenameLastExtension(srcName);
std::string name = "cm_logo." + suffix;
std::string path = this->Directory + "/config/" + name;
cmsys::SystemTools::CopyFileIfDifferent(this->Logo, path);
xout.Element("Logo", name);
@@ -415,19 +417,25 @@ void cmCPackIFWInstaller::GenerateInstallerFile()
if (!this->IsVersionLess("1.4")) {
// ApplicationIcon
if (!this->InstallerApplicationIcon.empty()) {
std::string name =
std::string srcName =
cmSystemTools::GetFilenameName(this->InstallerApplicationIcon);
std::string suffix = cmSystemTools::GetFilenameLastExtension(srcName);
std::string name = "cm_appicon." + suffix;
std::string path = this->Directory + "/config/" + name;
name = cmSystemTools::GetFilenameWithoutExtension(name);
cmsys::SystemTools::CopyFileIfDifferent(this->InstallerApplicationIcon,
path);
// The actual file is looked up by attaching a '.icns' (macOS),
// '.ico' (Windows). No functionality on Unix.
name = cmSystemTools::GetFilenameWithoutExtension(name);
xout.Element("InstallerApplicationIcon", name);
}
// WindowIcon
if (!this->InstallerWindowIcon.empty()) {
std::string name =
std::string srcName =
cmSystemTools::GetFilenameName(this->InstallerWindowIcon);
std::string suffix = cmSystemTools::GetFilenameLastExtension(srcName);
std::string name = "cm_winicon." + suffix;
std::string path = this->Directory + "/config/" + name;
cmsys::SystemTools::CopyFileIfDifferent(this->InstallerWindowIcon, path);
xout.Element("InstallerWindowIcon", name);