Ninja (ソフトウェア)
表示
開発元 | Evan Martin |
---|---|
初版 | 2012年[1] |
最新版 | 1.12.1[2] - 2024年5月11日 |
リポジトリ | |
プログラミング 言語 | C++、Python |
対応OS | クロスプラットフォーム |
種別 | ソフトウェア開発ツール |
ライセンス | Apache License 2.0 |
公式サイト |
ninja-build |
Ninja(ニンジャ)は、高速な動作を重視した小さなビルドシステムである。より高レベルなビルドシステムによってビルドファイルを生成するように設計されている点と、可能な限りビルドを高速に行うように設計されている点が他のビルドシステムと大きく異なる点である。
本質的に、NinjaはMakeの置き換えを意図している。Makeは増分ビルドまたはリビルドをした場合に低速である[3]。例えば、40,000のファイルを単一の実行ファイルにコンパイルするGoogle Chromeのような大規模プロジェクトでは、このことは開発者の作業をかなり遅らせてしまう。実際、Google ChromeはNinjaの主要なユーザーであり、Ninja自体の開発の動機となったプロジェクトでもある[4]。NinjaはAndroidの開発や[5]、多くのLLVM開発者にも使用されている[6]。
Makeとは対照的に、Ninjaのビルドファイルは手書きされることは意図していないので、文字列操作などの機能は欠如している。代わりに、Ninjaのビルドファイルはより高レベルなビルドシステムによって生成する。CMakeとMesonは、Ninjaのビルドファイルの生成に対応した著名なビルド管理ソフトウェアである[7]。
脚注
[編集]- ^ Evan Martin (2012年5月8日). “release: ninja v120508”. 2019年7月10日閲覧。
- ^ "Release 1.12.1"; 閲覧日: 2024年5月23日; 出版日: 2024年5月11日.
- ^ David Röthlisberger (2016年11月16日). “The Ninja build tool”. LWN.net. 2019年7月10日閲覧。
- ^ Evan Martin. “Ninja”. 2019年7月10日閲覧。
- ^ Dave Smith (2015年10月28日). “Re: ANN: AOSP builds with ninja”. 2019年7月10日閲覧。
- ^ “Getting Started with the LLVM System”. LLVM Project. 2019年7月10日閲覧。
- ^ “Ninja”. Kitware, Inc. 2019年7月10日閲覧。