XCODE_EMBED_<type>

在 3.20 版本中添加。

指示 Xcode 生成器将指定列表中的项嵌入到目标包中。 <type> 指定要使用的嵌入构建阶段。有关每个 <type> 的基本位置,请参阅 Xcode 文档。

支持的 `<type>` 值包括:

FRAMEWORKS

指定的项将被添加到 Embed Frameworks 构建阶段。项可以是 CMake 目标名称,也可以是框架或库的路径。

APP_EXTENSIONS

3.21 版本新增。

指定的项将被添加到 Embed App Extensions 构建阶段,并将 Destination 设置为 PlugIns and Foundation Extensions。它们必须是 CMake 目标名称。

EXTENSIONKIT_EXTENSIONS

3.26 版新增。

指定的项将被添加到 Embed App Extensions 构建阶段,并将 Destination 设置为 ExtensionKit Extensions。它们必须是 CMake 目标名称,并且很可能具有将 XCODE_PRODUCT_TYPE 目标属性设置为 com.apple.product-type.extensionkit-extension,以及将 XCODE_EXPLICIT_FILE_TYPE 设置为 wrapper.extensionkit-extension

PLUGINS

在版本 3.23 中添加。

指定的项将被添加到 Embed PlugIns 构建阶段。它们必须是 CMake 目标名称。

RESOURCES

版本 3.28 新增。

指定的项将被添加到 Embed Resources 构建阶段。它们必须是 CMake 目标名称或文件夹路径。

XPC_SERVICES

在版本 3.29 中添加。

指定的项将被添加到 Embed XPC Services 构建阶段。它们必须是 CMake 目标名称。

当将一个目标列为要嵌入的任何内容时,Xcode 必须看到该目标是同一 Xcode 项目的一部分,或者是一个定义了该包的项目的子项目。为了满足此约束,CMake 项目必须确保以下至少一项:

  • 在顶层 CMakeLists.txt 文件中将 CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY 变量设置为 true。这是最简单、最健壮的方法。

  • 在定义要嵌入的目标的子目录中定义要嵌入的目标。

  • 如果目标-要嵌入和目标-要嵌入到位于不同的、不相关的目录中(即它们是兄弟关系,而不是一个父子关系),请确保它们在父目录中有一个共同的 project() 调用,并且它们之间以及与该公共 project() 调用之间没有其他 project() 调用。

另请参阅 XCODE_EMBED_<type>_PATHXCODE_EMBED_<type>_REMOVE_HEADERS_ON_COPYXCODE_EMBED_<type>_CODE_SIGN_ON_COPY