CPack IFW 生成器¶
在 3.1 版本加入.
配置并运行 Qt Installer Framework 以生成 Qt 安装程序。
概述¶
这个 cpack 生成器 为`Qt Installer Framework <https://doc.qt.io/qtinstallerframework/index.html>`_ (QtIFW) 生成配置和元信息,并运行 QtIFW 工具来生成 Qt 安装程序。
QtIFW 提供工具和实用程序来为`Qt <https://www.qt.io>`_ 支持的平台创建安装程序: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¶
指向包含您网站上产品信息的页面的 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 less 2.0 工具是
ON。
- CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE¶
在 3.23 版本加入.
如果应禁用命令行界面功能,则设置为
ON。默认情况下它是“关闭”并且只有在使用 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``,将下载所有组件。如果未设置,则行为取决于是否使用 ALL 选项调用了
cpack_configure_downloads()。
- CPACK_IFW_PACKAGE_PRODUCT_IMAGES¶
在 3.23 版本加入.
要在 PerformInstallationPage 上显示的图像列表。这些必须是绝对路径并且图像必须是 PNG 格式。
此功能适用于 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
压缩
压缩包
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 工具¶
- CPACK_IFW_FRAMEWORK_VERSION¶
在 3.3 版本加入.
将使用的 QtIFW 工具的版本。此变量由 CPackIFW 模块设置。
以下变量提供由 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 选项指定要下载 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.io/qtinstallerframework/scripting.html#predefined-variables
促进更新:https://doc.qt.io/qtinstallerframework/ifw-updates.html
- 从 Qt 站点为您的平台下载 Qt Installer Framework:
https://download.qt.io/official_releases/qt-installer-framework