Chromiumの開発者、「Chrome」でも利用されているビルドシステム「Ninja」を公開
米GoogleのChromiumプロジェクトの開発者、Evan Martin氏は2月6日、「Chrome」で利用したビルドシステム「Ninja」を公開した。ライセンスはApache Licence 2.0。
NinjaはMartin氏が開発したビルドシステムで、高速性を特徴とする。Ninjaの開発に至った経緯についてMartin氏は、ChromeをLinuxにポーティング中にソフトウェアビルドツール「SCons」を利用したところ、コンパイル開始までに40秒を要するなど、パフォーマンスに不満を感じたと記している(SConsが問題なのではなく、WebKitを含む30,000ものインプットから単一のChrome実行ファイルを作成しなければならなかったと説明している)。その後、「GNU Make」を利用することで時間は10秒~20秒に短縮されたが、さらに高速化すべく、スクラッチから開発されたのがNinjaとなる。高速なコンピューター上で他のツールと組み合わせて利用したところ、インクリメンタルなChromeビルドを6秒で作成できたという。
NinjaはMakeと似たコンセプトを持ち、機能を削ぎ落としたシンプルなビルドシステム。Googleからオープンソースソフトウェアとして公開する許可を得たあと、高速なことからNinjaと名付けたという。Martin氏は、コードの著作権はGoogleが保有するが、自身が余暇を利用して作成したものであり、Google支援プロジェクトではない点を強調している。
GithubのNinjaのページ
https://github.com/martine/ninja