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
。