add_dependencies

Add a dependency between top-level targets.

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 add_executable(), add_library(), or add_custom_target() commands (but not targets generated by CMake like install). At least one <target-dependency> must be given.

Dependencies added to an imported target or an interface library are followed transitively in its place since the target itself does not build.

Added in version 3.3: Allow adding dependencies to interface libraries.

Added in version 3.8: Dependencies will populate the MANUALLY_ADDED_DEPENDENCIES property of <target>.

Changed in version 3.9: The 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.

See Also