Ninja (build system)

Ninja
Developer(s) Evan Martin
Initial release 2012 (2012)[1]
Stable release
1.7.2[2] / November 7, 2016 (2016-11-07)
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

  1. Martin, Evan. "Google Groups: ninja-build". Retrieved 18 June 2017.
  2. "Releases - ninja-build/ninja". Retrieved 18 June 2017.
  3. Röthlisberger, David. "The Ninja build tool". LWN. Retrieved 18 June 2017.
  4. Metz, Cade. "Google man open sources Chrome build system". The Register. Retrieved 18 June 2017.
  5. Kitware. "cmake Documentation". Retrieved 18 June 2017.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.