私はsconsのエンドビルドコールバックのようなものを登録する方法を探しています。たとえば、今のようなことをしています。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セッションで複数の 'build'コマンドを実行するときに、このようなものをポップアップできるようにしたいと考えています。
私が見つけた唯一の提案は、依存システムを使用するか、またはAddPostAction
というglomを呼び出すことです。それは本当に依存関係ではないので(それは本当にビルドの一部ではない、厳密に言えば)、それは私にはそうではないように思えます。すべてのビルドの終わり。
ありがとうございます!
良い解決策ですが、デフォルトターゲットを構築している場合にのみ機能します。最後の2行を以下のように交換しました: 'Depends(finish_command、BUILD_TARGETS); '終了'がBUILD_TARGETSにない場合:BUILD_TARGETS.append( 'finish') ' –