mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-04 05:10:10 -05:00
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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user