CPack IFW 生成器¶
在版本 3.1 中添加。
配置并运行 Qt Installer Framework 以生成 Qt 安装程序。
概述¶
此 cpack generator
生成 Qt Installer Framework (QtIFW) 的配置和元信息,并运行 QtIFW 工具以生成 Qt 安装程序。
QtIFW 提供用于为 Qt 支持的平台(Linux、Microsoft Windows 和 macOS)创建安装程序的工具和实用程序。
要使用此生成器,需要安装 QtIFW。 CPackIFW
模块会查找 QtIFW 命令行实用程序的位置,并定义几个命令来控制此生成器的行为。请参阅 查找 QtIFW 的提示.
变量¶
可以使用以下变量来更改 CPack IFW
生成器的行为。
调试¶
- CPACK_IFW_VERBOSE¶
在版本 3.3 中添加。
设置为
ON
以启用额外的调试输出。默认情况下为OFF
。
包¶
- CPACK_IFW_PACKAGE_TITLE¶
安装程序在标题栏中显示的名称。如果未指定,则默认为
CPACK_PACKAGE_DESCRIPTION_SUMMARY
.
- CPACK_IFW_PACKAGE_PUBLISHER¶
软件的发布者(如 Windows 控制面板中所示)。如果未指定,则默认为
CPACK_PACKAGE_VENDOR
.
- CPACK_IFW_PRODUCT_URL¶
指向您网站上包含产品信息的页面。
- CPACK_IFW_PACKAGE_ICON¶
自定义安装程序图标的文件名。它必须是绝对路径。这应该是在 macOS 上的
.icns
文件,以及在 Windows 上的.ico
文件。在其他平台上它会被忽略。
- CPACK_IFW_PACKAGE_WINDOW_ICON¶
用于安装程序应用程序的 PNG 格式的自定义窗口图标的文件名。它必须是绝对路径。
- CPACK_IFW_PACKAGE_LOGO¶
用于 PNG 格式的徽标图像的文件名,用作
QWizard::LogoPixmap
。它必须是绝对路径。
- CPACK_IFW_PACKAGE_WATERMARK¶
在版本 3.8 中添加。
用于 PNG 格式的水印图像的文件名,用作
QWizard::WatermarkPixmap
。它必须是绝对路径。
- CPACK_IFW_PACKAGE_BANNER¶
在版本 3.8 中添加。
用于 PNG 格式的横幅图像的文件名,用作
QWizard::BannerPixmap
。它必须是绝对路径。
- CPACK_IFW_PACKAGE_BACKGROUND¶
在版本 3.8 中添加。
用于 PNG 格式的背景图像的文件名,用作
QWizard::BackgroundPixmap
(仅由MacStyle
使用)。它必须是绝对路径。
- CPACK_IFW_PACKAGE_WIZARD_STYLE¶
在版本 3.8 中添加。
要使用的向导样式 (
Modern
,Mac
,Aero
或Classic
)。
- CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH¶
在版本 3.8 中添加。
向导的默认宽度(以像素为单位)。设置横幅图像将覆盖此设置。
- CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT¶
在版本 3.8 中添加。
向导的默认高度(以像素为单位)。设置水印图像将覆盖此设置。
- CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST¶
在版本 3.20 中添加。
如果应隐藏在向导左侧显示安装程序页面的部件,则将其设置为
OFF
。默认情况下为
ON
,但仅在使用 QtIFW 4.0 或更高版本时才有效。
- CPACK_IFW_PACKAGE_TITLE_COLOR¶
在版本 3.8 中添加。
标题和副标题的颜色(接受 HTML 颜色代码,例如
#88FF33
)。
- CPACK_IFW_PACKAGE_STYLE_SHEET¶
在版本 3.15 中添加。
用于样式表的 文件名。它必须是绝对路径。
- CPACK_IFW_TARGET_DIRECTORY¶
安装的默认目标目录。如果
CPACK_PACKAGE_INSTALL_DIRECTORY
已设置,则默认为@ApplicationsDir@/${CPACK_PACKAGE_INSTALL_DIRECTORY}
。如果这两个变量都没有设置,则使用的默认值为@RootDir@/usr/local
。@...@
形式的预定义变量由 QtIFW 脚本引擎 展开。
- CPACK_IFW_ADMIN_TARGET_DIRECTORY¶
使用管理员权限安装的默认目标目录。
您可以使用预定义变量。
- CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR¶
在版本 3.11 中添加。
如果卸载时不应删除目标目录,则将其设置为
OFF
。默认情况下为
ON
- CPACK_IFW_PACKAGE_GROUP¶
用于配置根包的组。
- CPACK_IFW_PACKAGE_NAME¶
根包名称,如果未指定配置组,则将使用该名称。
- CPACK_IFW_PACKAGE_START_MENU_DIRECTORY¶
在版本 3.3 中添加。
Windows 开始菜单中产品的默认程序组的名称。如果未指定,则默认为
CPACK_IFW_PACKAGE_NAME
.
- CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME¶
在版本 3.3 中添加。
生成的维护工具的文件名。将附加平台特定的可执行文件扩展名。
如果未指定,QtIFW 将提供默认名称 (
maintenancetool
)。
- CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE¶
在版本 3.3 中添加。
用于生成的维护工具配置的文件名。
如果未指定,QtIFW 将使用默认文件名 (
maintenancetool.ini
)。
- CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS¶
在版本 3.3 中添加。
如果安装路径可能包含非 ASCII 字符,则设置为
ON
。仅支持 QtIFW 2.0 及更高版本。较旧的 QtIFW 版本将始终允许非 ASCII 字符。
- CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH¶
在版本 3.3 中添加。
如果安装路径不能包含空格字符,则设置为
OFF
。对于 QtIFW 2.0 之前的工具,值为
ON
。
- CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE¶
在 3.23 版本中添加。
如果应禁用命令行界面功能,则设置为
ON
。默认情况下为OFF
,并且仅在使用 QtIFW 4.0 或更高版本时才有效。
- CPACK_IFW_PACKAGE_CONTROL_SCRIPT¶
在版本 3.3 中添加。
自定义安装程序控制脚本的文件名。
- CPACK_IFW_PACKAGE_RESOURCES¶
在 3.7 版本中添加。
要包含在安装程序二进制文件中的附加资源 (
.qrc
文件) 列表。它们应指定为绝对路径,并且两个资源文件不能具有相同的文件名。可以使用
cpack_ifw_add_package_resources()
命令解析相对路径。
- CPACK_IFW_PACKAGE_FILE_EXTENSION¶
在 3.10 版本中添加。
目标二进制扩展名。
在 Linux 上,如果未指定扩展名,目标二进制文件的名称将自动扩展为
.run
。在 Windows 上,目标将作为具有
.exe
扩展名的应用程序创建,如果未提供,该扩展名将自动添加。在 Mac 上,目标将作为具有
.dmg
扩展名的 DMG 磁盘映像创建,如果未提供,该扩展名将自动添加。
- CPACK_IFW_REPOSITORIES_ALL¶
远程存储库的列表。
此变量的默认值由 CPack 计算,其中包含使用
cpack_ifw_add_repository()
添加或使用cpack_ifw_update_repository()
更新的所有存储库。
- CPACK_IFW_DOWNLOAD_ALL¶
如果此值为
ON
,则将下载所有组件。如果未设置,则行为取决于cpack_configure_downloads()
是否已使用ALL
选项调用。
- CPACK_IFW_PACKAGE_PRODUCT_IMAGES¶
在 3.23 版本中添加。
要在
PerformInstallationPage
上显示的图像列表。这些必须是绝对路径,并且图像必须为 PNG 格式。此功能适用于 QtIFW 4.0.0 及更高版本。
- CPACK_IFW_PACKAGE_PRODUCT_IMAGE_URLS¶
在 3.31 版本中添加。
与 ProductImages 关联的 URL 列表。仅在
CPACK_IFW_PACKAGE_PRODUCT_IMAGES
已定义且大小相同的情况下使用。此功能适用于 QtIFW 4.0.0 及更高版本。
- CPACK_IFW_PACKAGE_RUN_PROGRAM¶
在 3.23 版本中添加。
安装程序完成后执行的命令,如果用户接受操作。提供应用程序的完整路径,如安装时发现的路径。这通常意味着路径应以 QtIFW 预定义变量
@TargetDir@
开头。此功能适用于 QtIFW 4.0.0 及更高版本。
- CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS¶
在 3.23 版本中添加。
传递给
CPACK_IFW_PACKAGE_RUN_PROGRAM
中指定的程序的参数列表。此功能适用于 QtIFW 4.0.0 及更高版本。
- CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION¶
在 3.23 版本中添加。
在安装后运行程序的复选框旁边显示的文本。如果
CPACK_IFW_PACKAGE_RUN_PROGRAM
已设置但未提供描述,QtIFW 将使用默认消息,例如Run <Name> now
。此功能适用于 QtIFW 4.0.0 及更高版本。
- CPACK_IFW_PACKAGE_SIGNING_IDENTITY¶
在 3.23 版本中添加。
允许指定用于签署生成的应用程序包的代码签名标识。仅在 macOS 上可用,在其他平台上被忽略。
- CPACK_IFW_ARCHIVE_FORMAT¶
在 3.23 版本中添加。
设置打包新组件数据存档时使用的格式。如果省略此选项,将使用
7z
格式作为默认值。支持的格式7z
zip
tar.gz
tar.bz2
tar.xz
注意
如果 Qt Installer Framework 工具是在没有 libarchive 支持的情况下构建的,则仅支持
7z
格式。此功能适用于 QtIFW 4.2.0 及更高版本。
- CPACK_IFW_ARCHIVE_COMPRESSION¶
在 3.23 版本中添加。
存档压缩级别。允许的值为
0 (无压缩)
1 (最快压缩)
3 (快速压缩)
5 (正常压缩)
7 (最大压缩)
9 (超压缩)
如果未设置此变量,QtIFW 将使用默认压缩级别,通常为 5 (正常压缩)。
注意
某些格式不支持所有可能的值。例如,
zip
压缩仅支持 1 到 7 的值。此功能适用于 QtIFW 4.2.0 及更高版本。
组件¶
- CPACK_IFW_RESOLVE_DUPLICATE_NAMES¶
在使用组安装组件时解析重复名称。
- CPACK_IFW_PACKAGES_DIRECTORIES¶
将用于解析依赖组件的附加准备好的软件包目录。
- CPACK_IFW_REPOSITORIES_DIRECTORIES¶
在 3.10 版本中添加。
将用于解析和重新打包依赖组件的附加准备好的存储库目录。
此功能适用于 QtIFW 3.1 及更高版本。
QtIFW 工具¶
以下变量提供 CPackIFW
模块发现的 QtIFW 命令行工具的位置。这些变量已缓存,如果需要,可以对其进行配置。
- CPACK_IFW_ARCHIVEGEN_EXECUTABLE¶
在 3.19 版本中添加。
到
archivegen
的路径。
- CPACK_IFW_BINARYCREATOR_EXECUTABLE¶
到
binarycreator
的路径。
- CPACK_IFW_REPOGEN_EXECUTABLE¶
到
repogen
的路径。
- CPACK_IFW_INSTALLERBASE_EXECUTABLE¶
到
installerbase
的路径。
- CPACK_IFW_DEVTOOL_EXECUTABLE¶
到
devtool
的路径。
查找 QtIFW 的提示¶
通常,CPack IFW
生成器会自动查找 QtIFW 工具。以下 (按优先级排序) 也可以设置,以增强 find_program()
通常搜索的位置。
- CPACK_IFW_ROOT¶
在 3.9 版本中添加。
CMake 变量
- CPACK_IFW_ROOT¶
在 3.9 版本中添加。
环境变量
- QTIFWDIR¶
CMake 变量
- QTIFWDIR¶
环境变量
注意
指定的路径末尾不应包含 bin
(例如:D:\\DevTools\\QtIFW2.0.5
)。
其他设置¶
在线安装程序¶
默认情况下,此生成器会生成一个离线安装程序。这意味着所有打包的文件都完全包含在安装程序可执行文件中。
相反,在线安装程序将从远程服务器下载一些或所有组件。
在 cpack_add_component()
命令中,DOWNLOADED
选项指定一个组件需要下载。或者,在 cpack_configure_downloads()
命令中使用 ALL
选项指定 所有 组件都需要下载。
使用 cpack_ifw_add_repository()
命令和 CPACK_IFW_DOWNLOAD_ALL
变量可以进行更具体的配置。
当存在在线组件时,CPack 会将它们写入到存档文件。在 CPackComponent
模块的帮助页面中,尤其是关于 cpack_configure_downloads()
函数的部分,解释了如何从下载 URL 访问这些文件。
国际化¶
在 3.9 版本中添加。
一些变量和命令参数支持通过 CMake 脚本进行国际化。这是一个可选功能。
由 QtIFW 工具创建的安装程序内置支持国际化,许多短语都已本地化为多种语言,但这不适用于您组件和组的描述。
本地化您的组件和组的描述对您的安装程序用户很有用。
一个本地化的变量或参数可以包含一个默认值,以及一系列包含语言环境名称和本地化值的键值对。
例如
set(LOCALIZABLE_VARIABLE "Default value"
en "English value"
en_US "American value"
en_GB "Great Britain value"
)
参见¶
Qt 安装程序框架手册
组件脚本: https://doc.qt.ac.cn/qtinstallerframework/scripting.html
预定义变量: https://doc.qt.ac.cn/qtinstallerframework/scripting.html#predefined-variables
推广更新: https://doc.qt.ac.cn/qtinstallerframework/ifw-updates.html
- 从 Qt 网站下载适合您平台的 Qt 安装程序框架
https://download.qt.io/official_releases/qt-installer-framework