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¶
The
DEPENDS
option ofadd_custom_target()
andadd_custom_command()
commands for adding file-level dependencies in custom rules.The
OBJECT_DEPENDS
source file property to add file-level dependencies to object files.