いまGNU make(Makefile)で作ってる某組み込み機器向けのプロジェクトを、CMakeに書き直したいと思った。だってMakefile書くのも読むのも苦手なんだもん。あと、いろいろな環境を横断して開発してるという事情も相まって、CMakeで書いたスクリプト(CMakeLists.txt)を極力使いまわしたいってのもあった。
しかし、ただCMakeに書き直すだけだとメリット薄い気がしたので、CMakeで吐き出すビルドスクリプトをMakefileじゃなくて、ドチャクソ速いと巷で噂のNinjaにも対応してみる事に。ビルドが速くなればそのぶん仕事サボれる時間が増えるからハッピーやね!
んで、いざ対応しようと思ったが右も左も分からんので、「CMake 組み込み」でググったら上の方に出てくるQiitaの記事(正直めっちゃ助かる)を参考にしつつお仕事の合間に組み込み環境に対応していったのだが、案の定ドハマリして1ヶ月ぐらい掛かってしまった。そもそもネット上にあんまり日本語の情報転がってないし、俺みたいなにわかビルドエンジニアには難易度高かったのよねぇ。
まあ、結果としてMakefileでやってたときに比べて、クリーンビルドの所要時間がだいたい半分になった。あと差分ビルドも一瞬で終わるので不安にはなるけど、機器に転送してみたらちゃんと動いてるみたいだから問題なかろう。たぶん今が一番覚えてる状態なので、忘れないうちに書き遺しておこう。
続きを読む CMakeとNinjaを組み込み向けに使ってみた