1Ninja
2-----
3
4Generates ``build.ninja`` files.
5
6A ``build.ninja`` file is generated into the build tree.  Use the ninja
7program to build the project through the ``all`` target and install the
8project through the ``install`` (or ``install/strip``) target.
9
10For each subdirectory ``sub/dir`` of the project, additional targets
11are generated:
12
13``sub/dir/all``
14
15  .. versionadded:: 3.6
16
17    Depends on all targets required by the subdirectory.
18
19``sub/dir/install``
20
21  .. versionadded:: 3.7
22
23    Runs the install step in the subdirectory, if any.
24
25``sub/dir/install/strip``
26
27  .. versionadded:: 3.7
28    Runs the install step in the subdirectory followed by a ``CMAKE_STRIP`` command,
29    if any.
30
31    The ``CMAKE_STRIP`` variable will contain the platform's ``strip`` utility, which
32    removes symbols information from generated binaries.
33
34``sub/dir/test``
35
36  .. versionadded:: 3.7
37
38    Runs the test step in the subdirectory, if any.
39
40``sub/dir/package``
41
42  .. versionadded:: 3.7
43
44    Runs the package step in the subdirectory, if any.
45
46Fortran Support
47^^^^^^^^^^^^^^^
48
49.. versionadded:: 3.7
50
51The ``Ninja`` generator conditionally supports Fortran when the ``ninja``
52tool is at least version 1.10 (which has the required features).
53
54Swift Support
55^^^^^^^^^^^^^
56
57.. versionadded:: 3.15
58
59The Swift support is experimental, not considered stable, and may change
60in future releases of CMake.
61
62See Also
63^^^^^^^^
64
65.. versionadded:: 3.17
66  The :generator:`Ninja Multi-Config` generator is similar to the ``Ninja``
67  generator, but generates multiple configurations at once.
68