Ninja (build system)
Developer(s) | Evan Martin |
---|---|
Initial release | 2012[1] |
Stable release |
1.7.2[2]
/ November 7, 2016 |
Development status | Active |
Written in | C++, Python |
Operating system | Cross-platform |
Type | Software development tools |
License | Apache License 2.0 |
Ninja is a small build system with a focus on speed. 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.
In essence, Ninja is meant to replace Make, which is slow when performing incremental (or no-op) builds.[3] This can considerably slow down developers working on large projects, such as Google Chrome, which compile 30,000 input files to a single executable. In fact, Google Chrome is the main user and motivation for Ninja[4].
In contrast to Make, Ninja lacks features such as string manipulation, as Ninja build files are not meant to be written by hand. Instead, a "build generator" should be used to generate Ninja build files. CMake, a popular build management software supports creating build files for Ninja[5].
References
- ↑ Martin, Evan. "Google Groups: ninja-build". Retrieved 18 June 2017.
- ↑ "Releases - ninja-build/ninja". Retrieved 18 June 2017.
- ↑ Röthlisberger, David. "The Ninja build tool". LWN. Retrieved 18 June 2017.
- ↑ Metz, Cade. "Google man open sources Chrome build system". The Register. Retrieved 18 June 2017.
- ↑ Kitware. "cmake Documentation". Retrieved 18 June 2017.