EXCLUDE_FROM_ALL — CMake 3.30.1 Documentation

# 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 `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 `EXCLUDE_FROM_ALL` target property.