我正在寻找一种方法来在scons中注册一些类似于end-build回调的东西。例如,我正在做这样的事情:如何在每次构建scons后运行一些代码?
def print_build_summary():
failures = SCons.Script.GetBuildFailures()
notifyExe = 'notify-send '
if len(failures) > 0:
notifyExe = notifyExe + ' --urgency=critical Build Failed'
else:
notifyExe = notifyExe + ' --urgency=normal Build Succeed'
os.system(notifyExe)
atexit.register(print_build_summary)
这只适用于非交互模式。我希望能够在每次构建结束时弹出类似的内容,特别是在交互式scons会话中运行多个“构建”命令时。
我发现的唯一建议,四处寻找,似乎是使用依赖系统或AddPostAction
调用glom这。对我来说这样做并不完全正确,因为它不是真正的依赖关系(严格来说,它甚至不是真正的构建的一部分) - 它只是一个静态的代码段,需要在每个构建结束。
谢谢!
不错的解决方案,但它只适用于你正在建立一个默认目标。我为此交换了最后2行: 'Depends(finish_command,BUILD_TARGETS);如果'完成'不在BUILD_TARGETS中:BUILD_TARGETS.append('finish')' – 2014-06-13 13:39:53