Boost.Build(bjam)で独自拡張子を対応する方法
Bost.Buildの使い方メモです。
よく読めば、公式に書いてあることを簡単に触れているだけですので、
すでにご存知の方はスルーしてください。
コードジェネレーターのような特殊なツールを使いたいときどうすればいいのか。
例として、「*.l」をflexでコンパイルして、「*.c」を生成することを考えてみます。
まず、「*.l」の扱い方を定義したjamファイルを作ります。
flex.jam
import type ; import generators ; type.register L : l ; generators.register-standard flex.flex : L : C ; actions flex { flex -o $(<) $(>) }
actionsの中に実際のコマンドを書きます。
他のとこは大体こぴぺと一部修正でいけることがおおいでしょう。
すこし、補足します。
type.register L : l ;
ここで、拡張子「*.l」に対して、タイプの名前Lを付けています。
generators.register-standard flex.flex : L : C ;
この行に出てくる「C」というのは、bjam本体の方で定義されています。
上で定義した、LというタイプからCというタイプが生成されるというルールを記述しています。この書き方は、1:1の場合の書き方です。
メインのプロジェクト側で、
import flex ;
と書けば使えるようになります。