XCODE_EMBED_<type>¶
在 3.20 版本中添加。
指示 Xcode 生成器将指定列表中的项嵌入到目标包中。 <type> 指定要使用的嵌入构建阶段。有关每个 <type> 的基本位置,请参阅 Xcode 文档。
支持的 `<type>` 值包括:
FRAMEWORKS指定的项将被添加到
Embed Frameworks构建阶段。项可以是 CMake 目标名称,也可以是框架或库的路径。APP_EXTENSIONS3.21 版本新增。
指定的项将被添加到
Embed App Extensions构建阶段,并将Destination设置为PlugIns and Foundation Extensions。它们必须是 CMake 目标名称。EXTENSIONKIT_EXTENSIONS3.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>_PATH、XCODE_EMBED_<type>_REMOVE_HEADERS_ON_COPY 和 XCODE_EMBED_<type>_CODE_SIGN_ON_COPY。