SCons で一つのソースから複数のターゲットを作るときにうまくいかないのでテストしてみる.
def XXXBuilder(): return Builder(action = "perl xcommand $SOURCES") def YYYBuilder(): return Builder(action = "perl ycommand $SOURCES") env = Environment(BUILDERS = { "XXX": XXXBuilder(), "YYY": YYYBuilder() }) env.XXX("src.aaa.xxx", "src.aaa") env.YYY("src.aaa.yyy", "src.aaa")
ここで,xcommand file は file から file.xxx を生成,また,ycommand file は file から file.yyy を生成.
これを実行するとうまくいった.
うまくいかないと思い込んでいたのは,
env.XXX(None, "src.aaa") env.YYY(None, "src.aaa")
のようにしていたため.このようにしていたのは,この場合の一つのコマンドが一つのソースから複数のターゲットを生成するのに対応しようとしたため.(→そうではなく,scons -c で消去されないようにするためだった)
あらためて,一つのコマンドで一つのファイルから複数のターゲットを生成する方法を検証してみると,以下で全く問題なかった(もちろん xcommand で .xxx と .yyy を生成するようにした上で).
env.XXX(["src.aaa.xxx", "src.aaa.yyy"], "src.aaa")
0 件のコメント:
コメントを投稿