XCODE_LINK_BUILD_PHASE_MODEΒΆ
Added in version 3.19.
When using the Xcode
generator, libraries to be linked will be
specified in the Xcode project file using either the "Link Binary With
Libraries" build phase or directly as linker flags. The former allows Xcode
to manage build paths, which may be necessary when creating Xcode archives
because it may use different build paths to a regular build.
This property controls usage of "Link Binary With Libraries" build phase for a target that is an app bundle, executable, shared library, shared framework or a module library.
Possible values are:
NONE
The libraries will be linked by specifying the linker flags directly.BUILT_ONLY
The "Link Binary With Libraries" build phase will be used to link to another target under the following conditions:The target to be linked to is a regular non-imported, non-interface library target.
The output directory of the target being built has not been changed from its default (see
RUNTIME_OUTPUT_DIRECTORY
andLIBRARY_OUTPUT_DIRECTORY
).
KNOWN_LOCATION
The "Link Binary With Libraries" build phase will be used to link to another target under the same conditions as withBUILT_ONLY
and also:Imported library targets except those of type
UNKNOWN
.Any non-target library specified directly with a path.
For all other cases, the libraries will be linked by specifying the linker flags directly.
Warning
Libraries linked using "Link Binary With Libraries" are linked after the ones linked through regular linker flags. This order should be taken into account when different static libraries contain symbols with the same name, as the former ones will take precedence over the latter.
Warning
If two or more directories contain libraries with identical file names and some libraries are linked from those directories, the library search path lookup will end up linking libraries from the first directory. This is a known limitation of Xcode.
This property is initialized by the value of the
CMAKE_XCODE_LINK_BUILD_PHASE_MODE
variable if it is set when a
target is created.