You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
2.2 KiB
44 lines
2.2 KiB
OPTIMIZE_DEPENDENCIES
|
|
---------------------
|
|
|
|
.. versionadded:: 3.19
|
|
|
|
Activates dependency optimization of static and object libraries.
|
|
|
|
When this property is set to true, some dependencies for a static or object
|
|
library may be removed at generation time if they are not necessary to build
|
|
the library, since static and object libraries don't actually link against
|
|
anything.
|
|
|
|
If a static or object library has dependency optimization enabled, it first
|
|
discards all dependencies. Then, it looks through all of the direct and
|
|
indirect dependencies that it initially had, and adds them back if they meet
|
|
any of the following criteria:
|
|
|
|
* The dependency was added to the library by :command:`add_dependencies`.
|
|
* The dependency was added to the library through a source file in the library
|
|
generated by a custom command that uses the dependency.
|
|
* The dependency has any ``PRE_BUILD``, ``PRE_LINK``, or ``POST_BUILD`` custom
|
|
commands associated with it.
|
|
* The dependency contains any source files that were generated by a custom
|
|
command.
|
|
* The dependency contains any languages which produce side effects that are
|
|
relevant to the library. Currently, all languages except C, C++, Objective-C,
|
|
Objective-C++, assembly, and CUDA are assumed to produce side effects.
|
|
However, side effects from one language are assumed not to be relevant to
|
|
another (for example, a Fortran library is assumed to not have any side
|
|
effects that are relevant for a Swift library.)
|
|
|
|
As an example, assume you have a static Fortran library which depends on a
|
|
static C library, which in turn depends on a static Fortran library. The
|
|
top-level Fortran library has optimization enabled, but the middle C library
|
|
does not. If you build the top Fortran library, the bottom Fortran library will
|
|
also build, but not the middle C library, since the C library does not have any
|
|
side effects that are relevant for the Fortran library. However, if you build
|
|
the middle C library, the bottom Fortran library will also build, even though
|
|
it does not have any side effects that are relevant to the C library, since the
|
|
C library does not have optimization enabled.
|
|
|
|
This property is initialized by the value of the
|
|
:variable:`CMAKE_OPTIMIZE_DEPENDENCIES` variable when the target is created.
|