Ninja (ソフトウェア)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
Ninja
開発元 Evan Martin
初版 2012年(8年前) (2012[1]
最新版 1.10.0 / 2020年1月28日(4か月前) (2020-01-28[2]
リポジトリ https://github.com/ninja-build/ninja.git,
https://github.com/martine/ninja.git
プログラミング言語 C++Python
対応OS クロスプラットフォーム
種別 ソフトウェア開発ツール
ライセンス Apache License 2.0
公式サイト Ninja
テンプレートを表示

Ninjaは、高速な動作を重視した小さなビルドシステムである。より高レベルなビルドシステムによってビルドファイルを生成するように設計されている点と、可能な限りビルドを高速に行うように設計されている点が他のビルドシステムと大きく異なる点である。

本質的に、NinjaはMakeの置き換えを意図している。Makeは増分ビルドまたはリビルドをした場合に低速である[3]。例えば、40,000のファイルを単一の実行ファイルにコンパイルするGoogle Chromeのような大規模プロジェクトでは、このことは開発者の作業をかなり遅らせてしまう。実際、Google ChromeはNinjaの主要なユーザーであり、Ninja自体の開発の動機となったプロジェクトでもある[4]。NinjaはAndroidの開発や[5]、多くのLLVM開発者にも使用されている[6]

Makeとは対照的に、Ninjaのビルドファイルは手書きされることは意図していないので、文字列操作などの機能は欠如している。代わりに、Ninjaのビルドファイルはより高レベルなビルドシステムによって生成する。CMakeMesonは、Ninjaのビルドファイルの生成に対応した著名なビルド管理ソフトウェアである[7]

脚注[編集]

  1. ^ Evan Martin (2012年5月8日). “release: ninja v120508”. 2019年7月10日閲覧。
  2. ^ Releases”. GitHub. 2020年5月26日閲覧。
  3. ^ David Röthlisberger (2016年11月16日). “The Ninja build tool”. LWN.net. 2019年7月10日閲覧。
  4. ^ Evan Martin. “Ninja”. 2019年7月10日閲覧。
  5. ^ Dave Smith (2015年10月28日). “Re: ANN: AOSP builds with ninja”. 2019年7月10日閲覧。
  6. ^ Getting Started with the LLVM System”. LLVM Project. 2019年7月10日閲覧。
  7. ^ Ninja”. Kitware, Inc. 2019年7月10日閲覧。

関連項目[編集]

外部リンク[編集]