CPack productbuild 生成器¶
在 3.7 版本中添加。
productbuild CPack 生成器 (macOS)。
CPack productbuild 生成器的特定变量¶
使用 ProductBuild 在 Mac macOS 上构建的安装程序有以下特定变量
- CPACK_COMMAND_PRODUCTBUILD¶
用于生成 macOS 安装程序或 Mac 应用商店产品存档的
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 组件包的
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_WELCOME
、CPACK_RESOURCE_FILE_README
和CPACK_RESOURCE_FILE_LICENSE
文件复制前完成。
- CPACK_PRODUCTBUILD_DOMAINS¶
在 3.23 版本中添加。
此选项可对产品可能安装的位置进行更精细的控制。将其设为 true(请参阅策略
CMP0161
)时,将向 productbuild 分发 XML 添加以下形式的domains
元素<domains enable_anywhere="true" enable_currentUserHome="false" enable_localSystem="true"/>
默认值如上所示,但可以使用
CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE
、CPACK_PRODUCTBUILD_DOMAINS_USER
和CPACK_PRODUCTBUILD_DOMAINS_ROOT
覆盖。
- CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE¶
在 3.23 版本中添加。
可用于覆盖分发 XML 中的
domains
元素的enable_anywhere
属性。将其设为 true 时,产品可以在任何卷中安装,包括非系统卷。CPACK_PRODUCTBUILD_DOMAINS
必须设为 true,此变量才可生效。
- CPACK_PRODUCTBUILD_DOMAINS_USER¶
在 3.23 版本中添加。
可能用来覆盖 Distribution XML 的
domains
元素中的enable_currentUserHome
属性。当设置为真时,此产品可以安装到当前用户的 home 目录中。请注意,当安装到用户的 home 目录中时,将应用以下附加要求安装程序不得写入用户 home 目录的外部。
此安装将以当前用户(而非
root
)身份执行。这可能对CPACK_PREFLIGHT_<COMP>_SCRIPT
和CPACK_POSTFLIGHT_<COMP>_SCRIPT
产生影响。不需要管理权限即可执行此安装。
CPACK_PRODUCTBUILD_DOMAINS
必须设置为真才能使此变量生效。
- CPACK_PRODUCTBUILD_DOMAINS_ROOT¶
在 3.23 版本中添加。
可能用来覆盖 Distribution XML 的
domains
元素中的enable_localSystem
属性。当设置为真时,此产品可以安装到根目录中。通常情况下,应将其设置为真,除非只将此产品安装到用户的 home 目录中。CPACK_PRODUCTBUILD_DOMAINS
必须设置为真才能使此变量生效。
背景图像¶
在 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¶
如果指定,将为暗淡水蓝色主题添加一个背景以进行分发 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
选项相同,但针对暗淡主题。
分发 XML 模板¶
CPack 使用模板文件生成此软件包生成器在内部使用的 distribution.dist
文件。通常,CMake 提供模板文件,但项目可以通过放置一个名为 CPack.distribution.dist.in
的文件在 CMAKE_MODULE_PATH
变量中列出的目录之一来提供自己的文件。然后,CPack 将选取项目的模板文件,而不是使用它自己的文件。
通过执行类似于 configure_file()
命令的替换来生成 distribution.dist
文件。在运行 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
。