# Ninja

Generates a `build.ninja` file into the build tree.

## Builtin Targets

`all`

> Depends on all targets required by the project, except those with `EXCLUDE_FROM_ALL` set to true.

`install`

> Runs the install step.

`install/strip`

> Added in version 3.7: Runs the install followed by a `CMAKE_STRIP` command, if any.

> The `CMAKE_STRIP` variable will contain the platform's `strip` utility, which removes symbols information from generated binaries.

`install/parallel`

> Added in version 3.30: Created only if the `INSTALL_PARALLEL` global property is `ON`. Runs the install step for each subdirectory independently and in parallel.

For each subdirectory `sub/dir` of the project, additional targets are generated:

`sub/dir/all`

> Added in version 3.6: Depends on all targets required by the subdirectory.

`sub/dir/install`

> Added in version 3.7: Runs the install step in the subdirectory, if any.

`sub/dir/install/strip`

> Added in version 3.7: Runs the install step in the subdirectory followed by a `CMAKE_STRIP` command, if any.

`sub/dir/test`

> Added in version 3.7: Runs the test step in the subdirectory, if any.

`sub/dir/package`

> Added in version 3.7: Runs the package step in the subdirectory, if any.

## Fortran Support

Added in version 3.7.

The `Ninja` generator conditionally supports Fortran when the `ninja` tool is at least version 1.10 (which has the required features).

## Swift Support

Added in version 3.15.

The Swift support is experimental, not considered stable, and may change in future releases of CMake.

## See Also

Added in version 3.17: The `Ninja Multi-Config` generator is similar to the `Ninja` generator, but generates multiple configurations at once.