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 を生成する。

(๑´ڡ`๑) おしまい

*1:gcc を使って