Help/command/add_dependencies.rst
Add a dependency between top-level targets.
.. code-block:: cmake
add_dependencies(<target> <target-dependency>...)
Makes a top-level <target> depend on other top-level targets to
ensure that they build before <target> does. A top-level target
is one created by one of the :command:add_executable,
:command:add_library, or :command:add_custom_target commands
(but not targets generated by CMake like install).
Dependencies added to an :ref:imported target <Imported Targets>
or an :ref:interface library <Interface Libraries> are followed
transitively in its place since the target itself does not build.
.. versionadded:: 3.3 Allow adding dependencies to interface libraries.
.. versionadded:: 3.8
Dependencies will populate the :prop_tgt:MANUALLY_ADDED_DEPENDENCIES
property of <target>.
.. versionchanged:: 3.9
The :ref:Ninja Generators use weaker ordering than
other generators in order to improve available concurrency.
They only guarantee that the dependencies' custom commands are
finished before sources in <target> start compiling; this
ensures generated sources are available.
.. versionchanged:: 4.1 The command may be called with no dependencies. Previously, at least one dependency was required.
See Also ^^^^^^^^
The DEPENDS option of :command:add_custom_target and
:command:add_custom_command commands for adding file-level
dependencies in custom rules.
The :prop_sf:OBJECT_DEPENDS source file property to add
file-level dependencies to object files.