2013年1月18日金曜日

さすがNinja素速い…(気がする)

GNU Makeの素直さは良いけれどレガシーさに苛つきも覚える。cmakeは書くの面倒くさい。qmakeはQt一切使わないのに使うのもなー。omakeとかなんか仰々しいし.cxx認識しないし。nmakeなにそれ知らんがなどこの不自由な(ry

と、言う訳で Ninja を使う。簡潔な設定と高速な動作が特徴らしい。slashdotのスレを見て存在を知りました(・∀・)
openSUSEならOBSにNinjaが居る。
hoge.cxxにC++11な"Hello, Ninja!"とかあるとして、これをninjaコマンドでビルドする為の設定ファイルbuild.ninjaは、

compile_command = clang++
compile_options = -Wall -Werror -std=c++11
link_command    = clang++
link_options    = 

rule compile
  command = $compile_command $compile_options -c $in -o $out

rule link
  command = $link_command $link_options $in -o $out

build hoge.o: compile hoge.cxx
build hoge  : link    hoge.o

とか書けばOK(ちょっとだけ冗長に書いてみた)。後はninjaするだけ。いわゆるcleanはninja -t cleanで素早くお掃除してくれます。

へろーわあるどくらいだけでもninjaの素速さは体感できる(気がした)。これから積極的に使おうかな。

ちなみに私はsconsとかbjam(をBoostのビルド以外で使う)とかは試した事も無いけれど、基礎的なMakefileとシェルの扱い、それにNinjaが仲間になって今は幸せです(╹◡╹)

…だって、Ninjaなんだよ(╹◡╹)

0 件のコメント:

コメントを投稿