XCODE_LINK_BUILD_PHASE_MODE | |
--------------------------- | |
.. versionadded:: 3.19 | |
When using the :generator:`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 :prop_tgt:`RUNTIME_OUTPUT_DIRECTORY` and | |
:prop_tgt:`LIBRARY_OUTPUT_DIRECTORY`). | |
* ``KNOWN_LOCATION`` | |
The "Link Binary With Libraries" build phase will be used to link to another | |
target under the same conditions as with ``BUILT_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 | |
:variable:`CMAKE_XCODE_LINK_BUILD_PHASE_MODE` variable if it is set when a | |
target is created. |