CPackIFW: Add package configuration variables
This commit is contained in:
parent
b234000184
commit
e7511b7fbe
@ -74,6 +74,7 @@ if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
|
|||||||
string(TOUPPER ${_CPACK_IFW_COMPONENT_NAME} _CPACK_IFW_COMPONENT_UNAME)
|
string(TOUPPER ${_CPACK_IFW_COMPONENT_NAME} _CPACK_IFW_COMPONENT_UNAME)
|
||||||
|
|
||||||
if(${CMAKE_SYSTEM_NAME} MATCHES Windows)
|
if(${CMAKE_SYSTEM_NAME} MATCHES Windows)
|
||||||
|
set(_CPACK_IFW_PACKAGE_ICON "set(CPACK_IFW_PACKAGE_ICON \"${CMake_SOURCE_DIR}/Source/QtDialog/CMakeSetup.ico\")")
|
||||||
if(BUILD_QtDialog)
|
if(BUILD_QtDialog)
|
||||||
set(_CPACK_IFW_SHORTCUT_OPTIONAL "${_CPACK_IFW_SHORTCUT_OPTIONAL}component.addOperation(\"CreateShortcut\", \"@TargetDir@/bin/cmake-gui.exe\", \"@StartMenuDir@/CMake (cmake-gui).lnk\");\n")
|
set(_CPACK_IFW_SHORTCUT_OPTIONAL "${_CPACK_IFW_SHORTCUT_OPTIONAL}component.addOperation(\"CreateShortcut\", \"@TargetDir@/bin/cmake-gui.exe\", \"@StartMenuDir@/CMake (cmake-gui).lnk\");\n")
|
||||||
endif()
|
endif()
|
||||||
|
@ -34,12 +34,17 @@ include("@QT_DIALOG_CPACK_OPTIONS_FILE@" OPTIONAL)
|
|||||||
if(CPACK_GENERATOR MATCHES "IFW")
|
if(CPACK_GENERATOR MATCHES "IFW")
|
||||||
# Version with QtIFW limitations
|
# Version with QtIFW limitations
|
||||||
set(CPACK_PACKAGE_VERSION "@_CPACK_IFW_PACKAGE_VERSION@")
|
set(CPACK_PACKAGE_VERSION "@_CPACK_IFW_PACKAGE_VERSION@")
|
||||||
|
# Installer configuration
|
||||||
|
set(CPACK_IFW_PACKAGE_TITLE "CMake Build Tool")
|
||||||
|
set(CPACK_IFW_PRODUCT_URL "http://www.cmake.org")
|
||||||
|
@_CPACK_IFW_PACKAGE_ICON@
|
||||||
|
set(CPACK_IFW_PACKAGE_WINDOW_ICON "@CMake_SOURCE_DIR@/Source/QtDialog/CMakeSetup128.png")
|
||||||
# Enable install default component
|
# Enable install default component
|
||||||
set(CPACK_COMPONENTS_ALL "@_CPACK_IFW_COMPONENT_NAME@")
|
set(CPACK_COMPONENTS_ALL "@_CPACK_IFW_COMPONENT_NAME@")
|
||||||
# Configuration
|
# Component configuration
|
||||||
set(CPACK_COMPONENT_@_CPACK_IFW_COMPONENT_UNAME@_DISPLAY_NAME "@CPACK_PACKAGE_NAME@")
|
set(CPACK_COMPONENT_@_CPACK_IFW_COMPONENT_UNAME@_DISPLAY_NAME "@CPACK_PACKAGE_NAME@")
|
||||||
set(CPACK_COMPONENT_@_CPACK_IFW_COMPONENT_UNAME@_DESCRIPTION "@CPACK_PACKAGE_DESCRIPTION_SUMMARY@")
|
set(CPACK_COMPONENT_@_CPACK_IFW_COMPONENT_UNAME@_DESCRIPTION "@CPACK_PACKAGE_DESCRIPTION_SUMMARY@")
|
||||||
# IFW Configuration
|
# IFW component onfiguration
|
||||||
set(CPACK_IFW_COMPONENT_@_CPACK_IFW_COMPONENT_UNAME@_NAME "@CPACK_PACKAGE_NAME@")
|
set(CPACK_IFW_COMPONENT_@_CPACK_IFW_COMPONENT_UNAME@_NAME "@CPACK_PACKAGE_NAME@")
|
||||||
set(CPACK_IFW_COMPONENT_@_CPACK_IFW_COMPONENT_UNAME@_LICENSES "@CPACK_PACKAGE_NAME@ Copyright" "@CPACK_RESOURCE_FILE_LICENSE@")
|
set(CPACK_IFW_COMPONENT_@_CPACK_IFW_COMPONENT_UNAME@_LICENSES "@CPACK_PACKAGE_NAME@ Copyright" "@CPACK_RESOURCE_FILE_LICENSE@")
|
||||||
@_CPACK_IFW_COMPONENT_SCRIPT@
|
@_CPACK_IFW_COMPONENT_SCRIPT@
|
||||||
|
@ -29,8 +29,37 @@
|
|||||||
# Variables
|
# Variables
|
||||||
# ^^^^^^^^^
|
# ^^^^^^^^^
|
||||||
#
|
#
|
||||||
# Variables that Change Behavior
|
# You can use the following variables to change behavior of CPack ``IFW`` generator.
|
||||||
# """"""""""""""""""""""""""""""
|
#
|
||||||
|
# Package
|
||||||
|
# """""""
|
||||||
|
#
|
||||||
|
# .. variable:: CPACK_IFW_PACKAGE_TITLE
|
||||||
|
#
|
||||||
|
# Name of the installer as displayed on the title bar.
|
||||||
|
# By default used :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY`
|
||||||
|
#
|
||||||
|
# .. variable:: CPACK_IFW_PACKAGE_PUBLISHER
|
||||||
|
#
|
||||||
|
# Publisher of the software (as shown in the Windows Control Panel).
|
||||||
|
# By default used :variable:`CPACK_PACKAGE_VENDOR`
|
||||||
|
#
|
||||||
|
# .. variable:: CPACK_IFW_PRODUCT_URL
|
||||||
|
#
|
||||||
|
# URL to a page that contains product information on your web site.
|
||||||
|
#
|
||||||
|
# .. variable:: CPACK_IFW_PACKAGE_ICON
|
||||||
|
#
|
||||||
|
# Filename for a custom installer icon. The actual file is '.icns' (Mac OS X),
|
||||||
|
# '.ico' (Windows). No functionality on Unix.
|
||||||
|
#
|
||||||
|
# .. variable:: CPACK_IFW_PACKAGE_WINDOW_ICON
|
||||||
|
#
|
||||||
|
# Filename for a custom window icon in PNG format for the Installer application.
|
||||||
|
#
|
||||||
|
# .. variable:: CPACK_IFW_PACKAGE_LOGO
|
||||||
|
#
|
||||||
|
# Filename for a logo used as QWizard::LogoPixmap.
|
||||||
#
|
#
|
||||||
# .. variable:: CPACK_IFW_TARGET_DIRECTORY
|
# .. variable:: CPACK_IFW_TARGET_DIRECTORY
|
||||||
#
|
#
|
||||||
@ -45,6 +74,9 @@
|
|||||||
#
|
#
|
||||||
# You can use predefined variables.
|
# You can use predefined variables.
|
||||||
#
|
#
|
||||||
|
# Components
|
||||||
|
# """"""""""
|
||||||
|
#
|
||||||
# .. variable:: CPACK_IFW_RESOLVE_DUPLICATE_NAMES
|
# .. variable:: CPACK_IFW_RESOLVE_DUPLICATE_NAMES
|
||||||
#
|
#
|
||||||
# Resolve duplicate names when installing components with groups.
|
# Resolve duplicate names when installing components with groups.
|
||||||
@ -54,8 +86,8 @@
|
|||||||
# Additional prepared packages dirs that will be used to resolve
|
# Additional prepared packages dirs that will be used to resolve
|
||||||
# dependent components.
|
# dependent components.
|
||||||
#
|
#
|
||||||
# Advanced Variables
|
# Advanced
|
||||||
# """"""""""""""""""
|
# """"""""
|
||||||
#
|
#
|
||||||
# .. variable:: CPACK_IFW_BINARYCREATOR_EXECUTABLE
|
# .. variable:: CPACK_IFW_BINARYCREATOR_EXECUTABLE
|
||||||
#
|
#
|
||||||
|
@ -680,14 +680,19 @@ int cmCPackIFWGenerator::IfwCreateConfigFile()
|
|||||||
ifwPkgName = "Your package";
|
ifwPkgName = "Your package";
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string ifwPkgDescription;
|
std::string pkgTitle;
|
||||||
if (const char *name = this->GetOption("CPACK_PACKAGE_DESCRIPTION_SUMMARY"))
|
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
|
else
|
||||||
{
|
{
|
||||||
ifwPkgDescription = "Your package description";
|
pkgTitle = "Your package description";
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string ifwPkgVersion;
|
std::string ifwPkgVersion;
|
||||||
@ -711,9 +716,64 @@ int cmCPackIFWGenerator::IfwCreateConfigFile()
|
|||||||
cfg << "<Installer>" << std::endl;
|
cfg << "<Installer>" << std::endl;
|
||||||
cfg << " <Name>" << cmXMLSafe(ifwPkgName).str() << "</Name>" << std::endl;
|
cfg << " <Name>" << cmXMLSafe(ifwPkgName).str() << "</Name>" << std::endl;
|
||||||
cfg << " <Version>" << ifwPkgVersion << "</Version>" << std::endl;
|
cfg << " <Version>" << ifwPkgVersion << "</Version>" << std::endl;
|
||||||
cfg << " <Title>" << cmXMLSafe(ifwPkgDescription).str() << "</Title>"
|
cfg << " <Title>" << cmXMLSafe(pkgTitle).str() << "</Title>"
|
||||||
<< std::endl;
|
<< 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
|
// Default target directory for installation
|
||||||
if (ifwTargetDir)
|
if (ifwTargetDir)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user