XCODE_EMBED_<type>ΒΆ

Added in version 3.20.

Tell the Xcode generator to embed the specified list of items into the target bundle. <type> specifies the embed build phase to use. See the Xcode documentation for the base location of each <type>.

The supported values for <type> are:

FRAMEWORKS

The specified items will be added to the Embed Frameworks build phase. The items can be CMake target names or paths to frameworks or libraries.

APP_EXTENSIONS

Added in version 3.21.

The specified items will be added to the Embed App Extensions build phase, with Destination set to PlugIns and Foundation Extensions They must be CMake target names.

EXTENSIONKIT_EXTENSIONS

Added in version 3.26.

The specified items will be added to the Embed App Extensions build phase, with Destination set to ExtensionKit Extensions They must be CMake target names, and should likely have the XCODE_PRODUCT_TYPE target property set to com.apple.product-type.extensionkit-extension as well as the XCODE_EXPLICIT_FILE_TYPE to wrapper.extensionkit-extension

PLUGINS

Added in version 3.23.

The specified items will be added to the Embed PlugIns build phase. They must be CMake target names.

RESOURCES

Added in version 3.28.

The specified items will be added to the Embed Resources build phase. They must be CMake target names or folder paths.

XPC_SERVICES

Added in version 3.29.

The specified items will be added to the Embed XPC Services build phase. They must be CMake target names.

When listing a target as any of the things to embed, Xcode must see that target as part of the same Xcode project, or a sub-project of the one defining the bundle. In order to satisfy this constraint, the CMake project must ensure at least one of the following:

  • The CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY variable is set to true in the top level CMakeLists.txt file. This is the simplest and most robust approach.

  • Define the target-to-embed in a subdirectory of the one that defines the target being embedded into.

  • If the target-to-embed and the target being embedded into are in separate, unrelated directories (i.e. they are siblings, not one a parent of the other), ensure they have a common project() call in a parent directory and no other project() calls between themselves and that common project() call.

See also XCODE_EMBED_<type>_PATH, XCODE_EMBED_<type>_REMOVE_HEADERS_ON_COPY and XCODE_EMBED_<type>_CODE_SIGN_ON_COPY.