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 格式的自定义窗口图标的文件名。它必须是绝对路径。

用于 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, AeroClassic)。

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 工具

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 选项指定 所有 组件都需要下载。

使用 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 安装程序框架手册

从 Qt 网站下载适合您平台的 Qt 安装程序框架

https://download.qt.io/official_releases/qt-installer-framework