「Ninja (ソフトウェア)」の版間の差分
表示
削除された内容 追加された内容
Momiji-Penguin (会話 | 投稿記録) m編集の要約なし |
|||
25行目: | 25行目: | ||
'''Ninja'''は、高速な動作を重視した小さな[[ビルド自動化|ビルドシステム]]である。より高レベルなビルドシステムによってビルドファイルを生成するように設計されている点と、可能な限りビルドを高速に行うように設計されている点が他のビルドシステムと大きく異なる点である。 |
'''Ninja'''は、高速な動作を重視した小さな[[ビルド自動化|ビルドシステム]]である。より高レベルなビルドシステムによってビルドファイルを生成するように設計されている点と、可能な限りビルドを高速に行うように設計されている点が他のビルドシステムと大きく異なる点である。 |
||
本質的に、Ninjaは[[Make]]の置き換えを意図している。Makeは増分ビルドまたはリビルドをした場合に低速である<ref>{{Cite web|title=The Ninja build tool|url=https://lwn.net/Articles/706404/|author=David Röthlisberger|publisher=LWN.net|date=2016-11-16|accessdate=2019-07-10}}</ref>。例えば、40,000のファイルを単一の実行ファイルにコンパイルする[[Google Chrome]]のような大規模プロジェクトでは、このことは開発者の作業をかなり遅らせてしまう。実際、Google ChromeはNinjaの主要なユーザーであり、Ninja自体の開発の動機となったプロジェクトでもある<ref>{{Cite web|title=Ninja|url=https://www.aosabook.org/en/posa/ninja.html|author=Evan Martin|accessdate=2019-07-10}}</ref>。Ninjaは[[Android]]の開発や<ref>{{Cite web|title=Re: ANN: AOSP builds with ninja|url=https://groups.google.com/forum/#!topic/android-platform/Hhl_4hfOONg/discussion|author=Dave Smith|date=2015-10-28|accessdate=2019-07-10}}</ref>、多くの[[LLVM]]開発者にも使用されている<ref>{{Cite web|title=Getting Started with the LLVM System|url=https://llvm.org/docs/GettingStarted.html#getting-started-quickly-a-summary|publisher=LLVM Project|accessdate=2019-07-10}}</ref>。 |
本質的に、Ninjaは[[Make]]の置き換えを意図している。Makeは増分ビルドまたはリビルドをした場合に低速である<ref>{{Cite web|title=The Ninja build tool|url=https://lwn.net/Articles/706404/|author=David Röthlisberger|publisher=LWN.net|date=2016-11-16|accessdate=2019-07-10}}</ref>。例えば、40,000のファイルを単一の実行ファイルにコンパイルする[[Google Chrome]]のような大規模プロジェクトでは、このことは開発者の作業をかなり遅らせてしまう。実際、Google ChromeはNinjaの主要なユーザーであり、Ninja自体の開発の動機となったプロジェクトでもある<ref>{{Cite web|title=Ninja|url=https://www.aosabook.org/en/posa/ninja.html|author=Evan Martin|accessdate=2019-07-10}}</ref>。Ninjaは[[Android (オペレーティングシステム)|Android]]の開発や<ref>{{Cite web|title=Re: ANN: AOSP builds with ninja|url=https://groups.google.com/forum/#!topic/android-platform/Hhl_4hfOONg/discussion|author=Dave Smith|date=2015-10-28|accessdate=2019-07-10}}</ref>、多くの[[LLVM]]開発者にも使用されている<ref>{{Cite web|title=Getting Started with the LLVM System|url=https://llvm.org/docs/GettingStarted.html#getting-started-quickly-a-summary|publisher=LLVM Project|accessdate=2019-07-10}}</ref>。 |
||
Makeとは対照的に、Ninjaのビルドファイルは手書きされることは意図していないので、文字列操作などの機能は欠如している。代わりに、Ninjaのビルドファイルはより高レベルなビルドシステムによって生成する。[[CMake]]と[[Meson (ソフトウェア)|Meson]]は、Ninjaのビルドファイルの生成に対応した著名なビルド管理ソフトウェアである<ref>{{Cite web|title=Ninja|url=https://cmake.org/cmake/help/v3.8/generator/Ninja.html|publisher=Kitware, Inc|accessdate=2019-07-10}}</ref>。 |
Makeとは対照的に、Ninjaのビルドファイルは手書きされることは意図していないので、文字列操作などの機能は欠如している。代わりに、Ninjaのビルドファイルはより高レベルなビルドシステムによって生成する。[[CMake]]と[[Meson (ソフトウェア)|Meson]]は、Ninjaのビルドファイルの生成に対応した著名なビルド管理ソフトウェアである<ref>{{Cite web|title=Ninja|url=https://cmake.org/cmake/help/v3.8/generator/Ninja.html|publisher=Kitware, Inc|accessdate=2019-07-10}}</ref>。 |
2020年9月6日 (日) 10:02時点における版
開発元 | Evan Martin |
---|---|
初版 | 2012年[1] |
最新版 |
1.10.0
/ 2020年1月28日[2] |
リポジトリ | |
プログラミング 言語 | 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日閲覧。
- ^ “Releases”. GitHub. 2020年5月26日閲覧。
- ^ 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日閲覧。