Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Help/prop_dir/EXCLUDE_FROM_ALL.rst
5012 views
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 in 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.