Building Ninja itself
You can either build Ninja via the custom generator script written in Python or via CMake. For more details see the wiki.
Python
./configure.py --bootstrap
This will generate the ninja
binary and a build.ninja
file you can now use
to build Ninja with itself.
If you have a GoogleTest source directory, you can build the tests
by passing its path with --gtest-source-dir=PATH
option, or the
GTEST_SOURCE_DIR
environment variable, e.g.:
./configure.py --bootstrap --gtest-source-dir=/path/to/googletest
./ninja all # build ninja_test and other auxiliary binaries
./ninja_test` # run the unit-test suite.
Use the CMake build below if you want to use a preinstalled binary version of the library.
CMake
cmake -Bbuild-cmake
cmake --build build-cmake
The ninja
binary will now be inside the build-cmake
directory (you can
choose any other name you like).
To run the unit tests:
./build-cmake/ninja_test
Generating documentation
Ninja Manual
You must have asciidoc
and xsltproc
in your PATH, then do:
./configure.py
ninja manual doc/manual.pdf
Which will generate doc/manual.html
.
To generate the PDF version of the manual, you must have dblatext
in your PATH then do:
./configure.py # only if you didn't do it previously.
ninja doc/manual.pdf
Which will generate doc/manual.pdf
.
Doxygen documentation
If you have doxygen
installed, you can build documentation extracted from C++
declarations and comments to help you navigate the code. Note that Ninja is a standalone
executable, not a library, so there is no public API, all details exposed here are
internal.
./configure.py # if needed
ninja doxygen
Then open doc/doxygen/html/index.html
in a browser to look at it.