この記事は
ビルドツール
GNU make
- 最もベーシックで人間にも優しい
- プロジェクト規模がデカくなるととにかく重たい
- ちょっと変なことをしようと思うととたんにうまくいかなくなって悲しい
ninja
- make の置き換えと言うポジション
- 何でもかんでも明示的に書くと言う考え方
- メタビルドツールから触ることを前提にしていて人間に対する当たりが強い
bazel
- GNU make の代替というポジション
- 言語ごとに最適化されたプリセットを選んで必要な項目だけを埋める感じのビルドツール
- 中で何が起きているかわからないのでトラブった時にしんどい?
メタビルドツール
autotools
- configure, Makefile を生成するヤツ
- C/C++ のビルドする時のおまじない
./configure --prefix=/path/to/install/dir
,make
,make install
はコイツが由来 - 設定ファイルを書くのが超辛いらしい
cmake
- autotools の代替と言うポジション
- ぱっと見で理解出来るようなものではない
- 覚えるのめっちゃ大変そう
Meson
- cmake の代替というポジション
- Meson で ninja の設定ファイルを書き出して ninja でビルドする感じ
- Meson 呼んで build ディレクトリに入って ninja 呼ぶっていう3ステップはちょっとイヤ
java 系
ant
Maven
- ant の代替
- ビルドツールっていうかプロジェクト管理ツール
- やっぱり XML での記述