YAML でターゲット書くビルドツール gazel とかどうかな
だいぶ前から YAML でビルドスクリプト(?)書いて、ビルドしてくれるツールのことを考えていた。
なんか今日、これだっていうのが浮かんだので書いてみる。
gazel は bazel と似てるけど、名前を忘れていてそれに想起されて思いついた。
とはいえ、例によって使ったことがないので、gazel は YAML を読み込んで依存を解決するだけの似非 Make みたくなっている。
まずは 1 つのソースファイルを実行ファイルにするケースを考えてみよう。
こういう YAML ファイルがあって:
- target: src: hoge.c dst: hoge
ファイル名は Gazelfile でも、build.yml でも build.gazel でも多分おk。
% gazel
と打つと、[Gg]azelfile、build.yml、build.gazel を探してそれを読む。
依存関係をあれやこれやして、多分ビルドしてくれる。
dst
が無い場合:
- target: src: hoge.c
この名前がないターゲットは default
という名前になって、gazel はこのターゲットの依存関係を解決しようと試みる。
規定の phony
パターン、.c.o
によって gazel は hoge.c から何らかの方法で*1 hoge.o を生成する。
(๑´ڡ`๑) おしまい