Ninja Python Distributions

Ninja is a small build system with a focus on speed.

The latest Ninja python wheels provide ninja 1.10.0.gfb670.kitware.jobserver-1 executable and ninja_syntax.py for generating .ninja files.

It differs from other build systems in two major respects: it is designed to have its input files generated by a higher-level build system, and it is designed to run builds as fast as possible.

Why yet another build system?

Where other build systems are high-level languages Ninja aims to be an assembler.

Ninja build files are human-readable but not especially convenient to write by hand. (See the generated build file used to build Ninja itself.) These constrained build files allow Ninja to evaluate incremental builds quickly.

Should you use Ninja?

Ninja's low-level approach makes it perfect for embedding into more featureful build systems; see a list of existing tools. Ninja is used to build Google Chrome, parts of Android, LLVM, and can be used in many other projects due to CMake's Ninja backend.

See the manual for more: philosophical background, whether and how you can use Ninja for your project, platform support, and details about the language semantics.

GitHub

https://github.com/scikit-build/ninja-python-distributions