我编写了一个Python函数,用于替换字符串,并在scons脚本中进行调用。
def Replace(env, filename, old, new):
with open(filename,"r+") as f:
d = f.read()
d = d.replace(old, new)
f.truncate(0)
f.seek(0)
f.write(d)
f.close()
env.AddMethod(Replace,'Replace')
在SConscript中
lib = env.SharedLibrary('lib', object, extra_libs)
tmp = env.Command([],[],[env.Replace(somefile, 'A', 'b')] )
env.Depends(tmp,lib )
我希望能在库构建完成后运行Replace()方法,但是scons总是在第一轮脚本解析阶段运行Replace()方法。看起来我可能缺少某些依赖关系。