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>_PATH
、`XCODE_EMBED_<type>_REMOVE_HEADERS_ON_COPY
和 `XCODE_EMBED_<type>_CODE_SIGN_ON_COPY
。