add_dependencies
----------------

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.
