Back to Cmake

add_dependencies

Help/command/add_dependencies.rst

4.3.21.6 KB
Original Source

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.