diff options
Diffstat (limited to 'src/script/scons.py')
-rw-r--r-- | src/script/scons.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/script/scons.py b/src/script/scons.py index 51593eb..a6a7f81 100644 --- a/src/script/scons.py +++ b/src/script/scons.py @@ -14,6 +14,8 @@ import traceback import SCons.Node.FS import SCons.Job from SCons.Errors import * +import SCons.Sig +import SCons.Sig.MD5 # # Modules and classes that we don't use directly in this script, but @@ -545,14 +547,18 @@ def main(): if not targets: targets = default_targets - taskmaster = Taskmaster(map( - lambda x: SCons.Node.FS.default_fs.File(x), - targets)) + calc = SCons.Sig.Calculator(SCons.Sig.MD5) + nodes = map(lambda x: SCons.Node.FS.default_fs.File(x), targets) + nodes = filter(lambda x, calc=calc: not calc.current(x), nodes) + + taskmaster = Taskmaster(nodes) jobs = SCons.Job.Jobs(num_jobs, taskmaster) jobs.start() jobs.wait() + calc.write(nodes) + if __name__ == "__main__": try: main() |