我正在尋找一種方法來在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