ディレクトリ内のすべてのJPEGファイルを(たとえば)PNGに変換するSConstructファイルを作成したいと思います。
私はビルダーを大丈夫だと思います:
ConvToPNG = Builder(action = 'convert $SOURCE $TARGET',
suffix = '.png',
src_suffix = '.jpg')
env['BUILDERS']['ConvToPNG'] = ConvToPNG
しかし、構築する必要のあるすべてのターゲットのリストを作成する方法がわかりません。私は次のようなPython-yの方法でそれを行うことができます:
pix_conversions = [env.ConvToPNG(jpg_src) for jpg_src in Glob('pix/img_*.jpg')]
そして多分私はそれらのためにエイリアスを使用します:
env.Alias('convert_all', pix_conversions)
または、手動でノードを作成し、それDepends
を変換に使用します。
問題は、これはスキャナーが一種のために作られたもののようです。しかし、それをうまく機能させることができませんでした。ディレクトリで動作するBuilderを作成し、多数のターゲットを追加するScannerを呼び出してみましたが、SConsの内部では、Builderがファイルで実行されることを想定しているため、動作しませんでした。(または、少なくとも、それは私がエラーメッセージから収集したものです)。
これを行うSCons-yの方法は他にもありますか?