CPack 产品构建生成器¶
在 3.7 版本加入.
productbuild CPack 生成器 (macOS)。
特定于 CPack productbuild 生成器的变量¶
以下变量特定于使用 ProductBuild 在 Mac macOS 上构建的安装程序:
- 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_WELCOME、CPACK_RESOURCE_FILE_README 和 CPACK_RESOURCE_FILE_LICENSE 文件之前完成的。
- CPACK_PRODUCTBUILD_DOMAINS¶
在 3.23 版本加入.
此选项可以更精细地控制产品的安装位置。当它设置为 true 时,以下形式的
domains元素将被添加到 productbuild Distribution XML 中:<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 版本加入.
可用于覆盖 Distribution XML 的“domains”元素中的“enable_anywhere”属性。设置为 true 时,产品可以安装在任何卷的根目录下,包括非系统卷。
CPACK_PRODUCTBUILD_DOMAINS必须设置为 true 才能使此变量生效。
- CPACK_PRODUCTBUILD_DOMAINS_USER¶
在 3.23 版本加入.
可用于覆盖 Distribution XML 的“domains”元素中的“enable_currentUserHome”属性。设置为 true 时,产品可以安装到当前用户的主目录中。请注意,在安装到用户的主目录时,将适用以下附加要求:
安装程序可能不会在用户的主目录之外写入。
安装将以当前用户身份执行,而不是以
root身份执行。这可能会对 CPACK_PREFLIGHT_<COMP>_SCRIPT 和 CPACK_POSTFLIGHT_<COMP>_SCRIPT 产生影响。执行安装不需要管理权限。
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 添加背景。该值包含“资源”目录中图像的路径。
- CPACK_PRODUCTBUILD_BACKGROUND_ALIGNMENT¶
在 Distribution XML 的背景中添加一个“alignment”属性。有关有效值,请参阅 Apple 文档。
- CPACK_PRODUCTBUILD_BACKGROUND_SCALING¶
在 Distribution XML 的背景中添加一个“缩放”属性。有关有效值,请参阅 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。该值包含“资源”目录中图像的路径。
- 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 会提供模板文件,但项目可以通过在 CMAKE_MODULE_PATH 变量中列出的目录之一中放置一个名为“CPack.distribution.dist.in”的文件来提供自己的模板文件。然后 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。