我正在寻找一种方法来注册诸如 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
打电话把这个打开。在我看来,这样做不太正确,因为它并不是真正的依赖项(严格来说,它甚至不是构建的一部分)——它只是需要在每个构建结束。
Thanks!
我不认为使用依赖系统来解决这个问题有什么问题。我通常是这样做的:
def finish( target, source, env ):
raise Exception( 'DO IT' )
finish_command = Command( 'finish', [], finish )
Depends( finish_command, DEFAULT_TARGETS )
Default( finish_command )
这将创建一个依赖于其执行的默认目标的命令(因此您知道它总是最后运行 - 请参阅 scons 手册中的 DEFAULT_TARGETS )。希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)