1
我願做一個SCons的生成器輸出的一些後期處理:嵌套使用SCons生成器
env = Environment()
bld = Builder(action = 'postproc $SOURCE $TARGET')
env.Append(BUILDERS = {'PostProc': bld})
prog = env.Program('foo.c')
env.PostProc('foo.pp',prog)
可正常工作。但是,我寧願使用一個生成器調用,所以我想我可以窩這樣的:
env = Environment()
bld = Builder(action = 'postproc $SOURCE $TARGET')
env.Append(BUILDERS = {'PostProc': bld})
def build_pp(env, target, source):
prog = env.Program(source)
return env.PostProc(target,prog)
bld2 = Builder(action = build_pp)
env.Append(BUILDERS = {'BuildPP': bld2})
env.BuildPP('foo.pp','foo.c')
但可理解的結果是:
scons: *** [foo.pp] Multiple ways to build the same target were specified for: foo.pp (from ['foo.c'] and from ['foo'])
任何想法如何這可能實現嗎?