CPack DragNDrop 生成器

DragNDrop CPack 生成器(macOS)用于创建 DMG 镜像。

CPack DragNDrop 生成器的特定变量

以下变量是 macOS 上构建的 DragNDrop 安装程序所特有的

CPACK_DMG_VOLUME_NAME

生成的磁盘镜像的卷名称。

默认值

CPACK_PACKAGE_FILE_NAME

CPACK_DMG_FORMAT

磁盘镜像格式。

默认值

UDZO

常用值包括 UDRO(UDIF 只读)、UDZO(UDIF zlib 压缩)或 UDBZ(UDIF bzip2 压缩)。有关其他可用格式的更多信息,请参考 hdiutil(1)

CPACK_DMG_DS_STORE

自定义 .DS_Store 文件的路径。此 .DS_Store 文件可用于指定 Finder 窗口的位置/几何形状和布局(例如隐藏工具栏、图标摆放位置等)。此文件必须由 Finder(手动或通过 AppleScript)使用普通文件夹生成,然后从中提取出 .DS_Store 文件。

CPACK_DMG_DS_STORE_SETUP_SCRIPT

3.5 版本新增。

自定义 AppleScript 文件的路径。该 AppleScript 用于生成一个 .DS_Store 文件,该文件指定了 Finder 窗口的位置/几何形状和布局(例如隐藏工具栏、图标摆放位置等)。通过指定自定义 AppleScript,无需使用 CPACK_DMG_DS_STORE,因为 AppleScript 生成的 .DS_Store 将被打包。

CPACK_DMG_BACKGROUND_IMAGE
默认值

用作背景的图像文件的路径。此文件将被复制到 .background/background.<ext>,其中 <ext> 是原始图像文件的扩展名。背景图像会在执行 CPACK_DMG_DS_STORE_SETUP_SCRIPT 或安装 CPACK_DMG_DS_STORE 之前被安装到镜像中。默认情况下不设置背景图像。

3.6 版本新增。

默认行为是在 DMG 中包含一个指向 /Applications 的符号链接。将此选项设置为 ON 可避免添加该符号链接。

CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE

在版本 3.23 中添加。

默认值

关闭

控制当 CPACK_RESOURCE_FILE_LICENSE 被设置为非默认值时,是否将其用作挂载 DMG 时提供的许可协议。如果未设置 CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSEcpack(1) 默认为关闭。

在通过 CPack 模块生成 CPackConfig.cmake 的 CMake 项目中,必须由项目显式启用 CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE 才能激活 SLA。参见策略 CMP0133

注意

此选项的添加是为了响应 macOS 12.0 弃用 hdiutil udifrez 命令,使其使用变为可选。CPack 3.22 及以下版本如果设置了非默认值,总是会使用 CPACK_RESOURCE_FILE_LICENSE 作为 DMG 许可。

CPACK_DMG_SLA_DIR

3.5 版本新增。

存储不同语言的许可协议和菜单文件的目录。设置此变量会使 CPack 为 CPACK_DMG_SLA_LANGUAGES 中定义的每种语言查找 <language>.menu.txt<language>.license.txt<language>.license.rtf 文件。如果同时设置了此变量和 CPACK_RESOURCE_FILE_LICENSE,CPack 将仅查找菜单文件,并对所有语言使用相同的许可文件。如果 <language>.license.txt<language>.license.rtf 同时存在,将使用 .txt 文件。

版本 3.17 新增: RTF 支持。

CPACK_DMG_SLA_LANGUAGES

3.5 版本新增。

挂载生成的 DMG 时提供许可协议的语言。菜单文件由 9 行文本组成。第一行是语言本身的名称,大写,英文(例如 German)。其他行是以下字符串的翻译:

  • Agree(同意)

  • Disagree(不同意)

  • Print(打印)

  • Save...(保存...)

  • You agree to the terms of the License Agreement when you click the "Agree" button.(点击“同意”按钮即表示您同意许可协议条款。)

  • Software License Agreement(软件许可协议)

  • This text cannot be saved. The disk may be full or locked, or the file may be locked.(无法保存此文本。磁盘可能已满或被锁定,或者文件被锁定。)

  • Unable to print. Make sure you have selected a printer.(无法打印。请确保已选择打印机。)

对于此列表中的每种语言,CPack 将尝试在 CPACK_DMG_SLA_DIR 变量指定的目录中查找 <language>.menu.txt<language>.license.txt 文件。

CPACK_DMG_<component>_FILE_NAME

在 3.17 版本中添加。

<component> 打包为单独的 DMG 文件时(CPACK_COMPONENTS_GROUPING 设置为 IGNORE)的文件名。

默认值

CPACK_PACKAGE_FILE_NAME-<component>

CPACK_DMG_FILESYSTEM

3.21 版本新增。

默认值

HFS+

文件系统格式。常用值包括 APFSHFS+。有关受支持格式的完整列表,请参见 man hdiutil

CPACK_COMMAND_HDIUTIL

用于在 macOS 上操作磁盘镜像文件的 hdiutil(1) 命令的路径。此变量可用于覆盖自动检测到的命令(或者在自动检测失败时指定其位置)。

CPACK_COMMAND_SETFILE

用于在 macOS 上设置文件和目录扩展属性的 SetFile(1) 命令的路径。此变量可用于覆盖自动检测到的命令(或者在自动检测失败时指定其位置)。

CPACK_COMMAND_REZ

用于在 macOS 上编译资源的 Rez(1) 命令的路径。此变量可用于覆盖自动检测到的命令(或者在自动检测失败时指定其位置)。