SCons: Как вызвать самоопределяемую функцию Python в скрипте scons и установить правильную зависимость

Я пишу функция 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 () во фразе синтаксического анализа сценария первого раунда. Кажется, мне не хватает какой-то зависимости.

5
задан Michael J. Barber 22 November 2011 в 11:28
поделиться