Ninja (ソフトウェア)

Ninja（ニンジャ）は、高速な動作を重視した小さなビルドシステムである。より高レベルなビルドシステムによってビルドファイルを生成するように設計されている点と、可能な限りビルドを高速に行うように設計されている点が他のビルドシステムと大きく異なる点である。
本質的に、NinjaはMakeの置き換えを意図している。Makeは増分ビルドまたはリビルドをした場合に低速である。例えば、40,000のファイルを単一の実行ファイルにコンパイルするGoogle Chromeのような大規模プロジェクトでは、このことは開発者の作業をかなり遅らせてしまう。実際、Google ChromeはNinjaの主要なユーザーであり、Ninja自体の開発の動機となったプロジェクトでもある。NinjaはAndroidの開発や、多くのLLVM開発者にも使用されている。
Makeとは対照的に、Ninjaのビルドファイルは手書きされることは意図していないので、文字列操作などの機能は欠如している。代わりに、Ninjaのビルドファイルはより高レベルなビルドシステムによって生成する。CMakeとMesonは、Ninjaのビルドファイルの生成に対応した著名なビルド管理ソフトウェアである。