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
.