XCODE_EMBED_<type>

在版本 3.20 中新增。

告知 Xcode 產生器將指定的項目列表嵌入到目標 bundle 中。<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 專案的一部分,或是定義 bundle 的專案的子專案。 為了滿足此限制,CMake 專案必須確保至少滿足以下其中一項

  • CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY 變數在頂層 CMakeLists.txt 檔案中設定為 true。 這是最簡單且最穩健的方法。

  • 在定義要嵌入的目標的子目錄中定義要嵌入的目標。

  • 如果要嵌入的目標和被嵌入的目標位於不同的、不相關的目錄中(即它們是同級目錄,而不是父子目錄),請確保它們在父目錄中有一個共同的 project() 呼叫,並且在它們自身和該共同的 project() 呼叫之間沒有其他 project() 呼叫。

另請參閱 XCODE_EMBED_<type>_PATHXCODE_EMBED_<type>_REMOVE_HEADERS_ON_COPYXCODE_EMBED_<type>_CODE_SIGN_ON_COPY