https://github.com/Kitware/CMake
Tip revision: cd386f6425f2558a5eb69de8a2265df52bdc5147 authored by Brad King on 18 July 2024, 13:13:21 UTC
CMake 3.30.1
CMake 3.30.1
Tip revision: cd386f6
EXCLUDE_FROM_ALL.rst
EXCLUDE_FROM_ALL
----------------
Set this directory property to a true value on a subdirectory to exclude
its targets from the "all" target of its ancestors. If excluded, running
e.g. ``make`` in the parent directory will not build targets the
subdirectory by default. This does not affect the "all" target of the
subdirectory itself. Running e.g. ``make`` inside the subdirectory will
still build its targets.
``EXCLUDE_FROM_ALL`` is meant for when the subdirectory contains
a separate part of the project that is useful, but not necessary,
such as a set of examples, or e.g. an integrated 3rd party library.
Typically the subdirectory should contain its own :command:`project`
command invocation so that a full build system will be generated in the
subdirectory (such as a Visual Studio IDE solution file). Note that
inter-target dependencies supersede this exclusion. If a target built by
the parent project depends on a target in the subdirectory, the dependee
target will be included in the parent project build system to satisfy
the dependency.
If the ``EXCLUDE_FROM_ALL`` argument is provided, it has the following effects:
* Targets defined in the subdirectory or below will not be
included in the ``ALL`` target of the parent directory.
Those targets must be built explicitly by the user,
or be a dependency of another target that will be built.
* Targets defined in the subdirectory or below will be
excluded from IDE project files.
* Any install rules defined in the subdirectory or below will
be ignored when installing the parent directory.
Note that these effects are not the same as those for the
:prop_tgt:`EXCLUDE_FROM_ALL` target property.