CPack productbuild 生成器

在 3.7 版本中加入。

productbuild CPack 生成器 (macOS)。

CPack productbuild 生成器特定的变量

以下变量是 macOS 上使用 ProductBuild 构建的安装程序特有的

CPACK_COMMAND_PRODUCTBUILD

用于为 macOS 安装程序或 Mac App Store 生成产品归档的 productbuild(1) 命令的路径。 此变量可用于覆盖自动检测到的命令(或者如果自动检测未能找到该命令,则指定其位置)。

CPACK_PRODUCTBUILD_IDENTIFIER

在 3.23 版本中加入。

设置要与产品关联的唯一(非本地化)产品标识符(即 com.kitware.cmake)。 任何组件产品名称都将附加到此值。

CPACK_PRODUCTBUILD_IDENTITY_NAME

在 3.8 版本中加入。

向生成的包添加数字签名。

CPACK_PRODUCTBUILD_KEYCHAIN_PATH

在 3.8 版本中加入。

指定要搜索签名身份的特定密钥链。

CPACK_COMMAND_PKGBUILD

用于在 macOS 上生成 macOS 组件包的 pkgbuild(1) 命令的路径。 此变量可用于覆盖自动检测到的命令(或者如果自动检测未能找到该命令,则指定其位置)。

CPACK_PKGBUILD_IDENTITY_NAME

在 3.8 版本中加入。

向生成的包添加数字签名。

CPACK_PKGBUILD_KEYCHAIN_PATH

在 3.8 版本中加入。

指定要搜索签名身份的特定密钥链。

CPACK_PREFLIGHT_<COMP>_SCRIPT

将用作指定 <COMP> 组件包的 preinstall 脚本的文件的完整路径,其中 <COMP> 是大写的组件名称。 如果未为给定组件定义此变量,则不会添加 preinstall 脚本。

CPACK_POSTFLIGHT_<COMP>_SCRIPT

将用作指定 <COMP> 组件包的 postinstall 脚本的文件的完整路径,其中 <COMP> 是大写的组件名称。 如果未为给定组件定义此变量,则不会添加 postinstall 脚本。

CPACK_PRODUCTBUILD_RESOURCES_DIR

在 3.9 版本中加入。

如果指定,productbuild 生成器会将此目录(包括子目录)中的文件复制到 Resources 目录。 这在复制 CPACK_RESOURCE_FILE_WELCOMECPACK_RESOURCE_FILE_READMECPACK_RESOURCE_FILE_LICENSE 文件之前完成。

CPACK_PRODUCTBUILD_DOMAINS

在 3.23 版本中加入。

此选项可以更精细地控制产品的安装位置。 当设置为 true 时(请参阅策略 CMP0161),以下形式的 domains 元素将添加到 productbuild Distribution XML

<domains enable_anywhere="true" enable_currentUserHome="false" enable_localSystem="true"/>

默认值如上所示,但可以使用 CPACK_PRODUCTBUILD_DOMAINS_ANYWHERECPACK_PRODUCTBUILD_DOMAINS_USERCPACK_PRODUCTBUILD_DOMAINS_ROOT 覆盖。

CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE

在 3.23 版本中加入。

可用于覆盖 Distribution XML 的 domains 元素中的 enable_anywhere 属性。 当设置为 true 时,产品可以安装在任何卷的根目录中,包括非系统卷。

CPACK_PRODUCTBUILD_DOMAINS 必须设置为 true,此变量才能生效。

CPACK_PRODUCTBUILD_DOMAINS_USER

在 3.23 版本中加入。

可用于覆盖 Distribution XML 的 domains 元素中的 enable_currentUserHome 属性。 当设置为 true 时,产品可以安装到当前用户的主目录中。 请注意,当安装到用户的主目录时,以下附加要求将适用

CPACK_PRODUCTBUILD_DOMAINS 必须设置为 true,此变量才能生效。

CPACK_PRODUCTBUILD_DOMAINS_ROOT

在 3.23 版本中加入。

可用于覆盖 Distribution XML 的 domains 元素中的 enable_localSystem 属性。 当设置为 true 时,产品可以安装在根目录中。 除非产品仅应安装到用户的主目录,否则通常应将其设置为 true。

CPACK_PRODUCTBUILD_DOMAINS 必须设置为 true,此变量才能生效。

背景图像

在 3.17 版本中加入。

这组变量控制生成的安装程序的背景图像。

CPACK_PRODUCTBUILD_BACKGROUND

如果指定,则向 Distribution XML 添加背景。 该值包含 Resources 目录中图像的路径。

CPACK_PRODUCTBUILD_BACKGROUND_ALIGNMENT

向 Distribution XML 中的背景添加 alignment 属性。 有关有效值,请参阅 Apple 文档。

CPACK_PRODUCTBUILD_BACKGROUND_SCALING

向 Distribution XML 中的背景添加 scaling 属性。 有关有效值,请参阅 Apple 文档。

CPACK_PRODUCTBUILD_BACKGROUND_MIME_TYPE

向 Distribution XML 中的背景添加 mime-type 属性。 此选项包含图像的 MIME 类型。

CPACK_PRODUCTBUILD_BACKGROUND_UTI

向 Distribution XML 中的背景添加 uti 属性。 此选项包含图像的 UTI 类型。

CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA

如果指定,则为 Dark Aqua 主题向 Distribution XML 添加背景。 该值包含 Resources 目录中图像的路径。

CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_ALIGNMENT

CPACK_PRODUCTBUILD_BACKGROUND_ALIGNMENT 选项的作用相同,但适用于深色主题。

CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_SCALING

CPACK_PRODUCTBUILD_BACKGROUND_SCALING 选项的作用相同,但适用于深色主题。

CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_MIME_TYPE

CPACK_PRODUCTBUILD_BACKGROUND_MIME_TYPE 选项的作用相同,但适用于深色主题。

CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_UTI

CPACK_PRODUCTBUILD_BACKGROUND_UTI 选项的作用相同,但适用于深色主题。

Distribution XML 模板

CPack 使用模板文件来生成此包生成器内部使用的 distribution.dist 文件。 通常,CMake 提供模板文件,但项目可以通过将名为 CPack.distribution.dist.in 的文件放置在 CMAKE_MODULE_PATH 变量中列出的目录之一来提供自己的模板文件。 然后,CPack 将拾取项目的模板文件,而不是使用自己的模板文件。

distribution.dist 文件是通过执行类似于 configure_file() 命令的替换生成的。 CPack 运行时设置的任何变量都可用于使用常用的 @...@ 形式进行替换。 以下变量也在内部设置并可用于替换

CPACK_RESOURCE_FILE_LICENSE_NOPATH

CPACK_RESOURCE_FILE_LICENSE 相同,只是没有路径。 指定的文件将在生成的 distribution.dist 文件所在的目录中可用。

CPACK_RESOURCE_FILE_README_NOPATH

CPACK_RESOURCE_FILE_README 相同,只是没有路径。 指定的文件将在生成的 distribution.dist 文件所在的目录中可用。

CPACK_RESOURCE_FILE_WELCOME_NOPATH

CPACK_RESOURCE_FILE_WELCOME 相同,只是没有路径。 指定的文件将在生成的 distribution.dist 文件所在的目录中可用。

CPACK_APPLE_PKG_INSTALLER_CONTENT

在 3.23 版本中加入。

这包含指定安装程序范围选项(包括域详细信息)、默认背景和选项轮廓的所有 XML 元素。

CPACK_PACKAGEMAKER_CHOICES

自 3.23 版本起已弃用。

这仅包含指定默认背景和选项轮廓的 XML 元素。 它不包括安装程序范围的选项或任何域详细信息。 请改用 CPACK_APPLE_PKG_INSTALLER_CONTENT