diff options
author | Konstantin Podsvirov <konstantin@podsvirov.pro> | 2014-07-28 21:58:37 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-07-29 19:55:19 (GMT) |
commit | e7511b7fbe09a4007269992edcde2dc98144da47 (patch) | |
tree | 1d3e29a53d5b5a2beb51d92eeab7080a914be550 /Source/CPack | |
parent | b234000184bbf314bf0a7380a1d4ebb54f7c8f69 (diff) | |
download | CMake-e7511b7fbe09a4007269992edcde2dc98144da47.zip CMake-e7511b7fbe09a4007269992edcde2dc98144da47.tar.gz CMake-e7511b7fbe09a4007269992edcde2dc98144da47.tar.bz2 |
CPackIFW: Add package configuration variables
Diffstat (limited to 'Source/CPack')
-rw-r--r-- | Source/CPack/cmCPackIFWGenerator.cxx | 70 |
1 files changed, 65 insertions, 5 deletions
diff --git a/Source/CPack/cmCPackIFWGenerator.cxx b/Source/CPack/cmCPackIFWGenerator.cxx index 51c0f2e..3a7f539 100644 --- a/Source/CPack/cmCPackIFWGenerator.cxx +++ b/Source/CPack/cmCPackIFWGenerator.cxx @@ -680,14 +680,19 @@ int cmCPackIFWGenerator::IfwCreateConfigFile() ifwPkgName = "Your package"; } - std::string ifwPkgDescription; - if (const char *name = this->GetOption("CPACK_PACKAGE_DESCRIPTION_SUMMARY")) + std::string pkgTitle; + if (const char *title = this->GetOption("CPACK_IFW_PACKAGE_TITLE")) { - ifwPkgDescription = name; + pkgTitle = title; + } + else if (const char *description = + this->GetOption("CPACK_PACKAGE_DESCRIPTION_SUMMARY")) + { + pkgTitle = description; } else { - ifwPkgDescription = "Your package description"; + pkgTitle = "Your package description"; } std::string ifwPkgVersion; @@ -711,9 +716,64 @@ int cmCPackIFWGenerator::IfwCreateConfigFile() cfg << "<Installer>" << std::endl; cfg << " <Name>" << cmXMLSafe(ifwPkgName).str() << "</Name>" << std::endl; cfg << " <Version>" << ifwPkgVersion << "</Version>" << std::endl; - cfg << " <Title>" << cmXMLSafe(ifwPkgDescription).str() << "</Title>" + cfg << " <Title>" << cmXMLSafe(pkgTitle).str() << "</Title>" << std::endl; + // Publisher + std::string ifwPublisher; + if(const char *publisher = GetOption("CPACK_IFW_PACKAGE_PUBLISHER")) + { + ifwPublisher = publisher; + } + else if(const char *vendor = GetOption("CPACK_PACKAGE_VENDOR")) + { + ifwPublisher = vendor; + } + if(!ifwPublisher.empty()) + { + cfg << " <Publisher>" << cmXMLSafe(ifwPublisher).str() + << "</Publisher>" << std::endl; + } + + // ProductUrl + if(const char *url = GetOption("CPACK_IFW_PRODUCT_URL")) + { + cfg << " <ProductUrl>" << url << "</ProductUrl>" << std::endl; + } + + // ApplicationIcon + const char *pkgApplicationIcon = GetOption("CPACK_IFW_PACKAGE_ICON"); + if(pkgApplicationIcon && cmSystemTools::FileExists(pkgApplicationIcon)) + { + std::string name = cmSystemTools::GetFilenameName(pkgApplicationIcon); + std::string path = this->toplevel + "/config/" + name; + name = cmSystemTools::GetFilenameWithoutExtension(name); + cmsys::SystemTools::CopyFileIfDifferent(pkgApplicationIcon, path.data()); + cfg << " <InstallerApplicationIcon>" << name + << "</InstallerApplicationIcon>" << std::endl; + } + + // WindowIcon + const char *pkgWindowIcon = GetOption("CPACK_IFW_PACKAGE_WINDOW_ICON"); + if(pkgWindowIcon && cmSystemTools::FileExists(pkgWindowIcon)) + { + std::string name = cmSystemTools::GetFilenameName(pkgWindowIcon); + std::string path = this->toplevel + "/config/" + name; + cmsys::SystemTools::CopyFileIfDifferent(pkgWindowIcon, path.data()); + cfg << " <InstallerWindowIcon>" << name + << "</InstallerWindowIcon>" << std::endl; + } + + // Logo + const char *pkgLogo = GetOption("CPACK_IFW_PACKAGE_LOGO"); + if(pkgLogo && cmSystemTools::FileExists(pkgLogo)) + { + std::string name = cmSystemTools::GetFilenameName(pkgLogo); + std::string path = this->toplevel + "/config/" + name; + cmsys::SystemTools::CopyFileIfDifferent(pkgLogo, path.data()); + cfg << " <Logo>" << name << "</Logo>" << std::endl; + } + // Default target directory for installation if (ifwTargetDir) { |