1

コマンド ビルダーの結果として実行するコードが必要になるという問題があります。

node = env.Command (target, dependencies, function)

この場合、ターゲットが古くなっている場合は関数が実行されますが、これは私が望むものですが、ターゲットがキャッシュにある場合、関数は実行されません。私が望むのは、ターゲットがキャッシュからプルされた場合に別の関数を実行することです。

私は試した:

env.AddPostAction(node, function2)

しかし、その関数も呼び出されません。

何か案は?ありがとう。

4

1 に答える 1

0

Afaik、scons は、コードの実行中に要求をどのように満たすかを知りません。最初のパスを完了した後にその決定を行います。したがって、仮にわかったとしても、コード内でそれを実行できるとは思えません。

簡単でわかりやすい方法は、scons の出力を解析して 'Retrieved ... File name' を取得することです。

そしてもちろん、問題は依存関係が正しく設定されていないことを示唆しており、それを修正したようです。

于 2014-07-02T20:23:00.873 に答える