diff options
author | Steven Knight <knight@baldmt.com> | 2009-01-29 15:07:32 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2009-01-29 15:07:32 (GMT) |
commit | f2124c8cac9879ed1631ebafdbd85fd4b5a307a0 (patch) | |
tree | fb8db1cd1b4ddbd11c2d9282be3ef5702ebe6821 /src/engine/SCons/SConf.py | |
parent | 5d502b93b7554b0b16d9ca70bb1a7a74ac012a89 (diff) | |
download | SCons-f2124c8cac9879ed1631ebafdbd85fd4b5a307a0.zip SCons-f2124c8cac9879ed1631ebafdbd85fd4b5a307a0.tar.gz SCons-f2124c8cac9879ed1631ebafdbd85fd4b5a307a0.tar.bz2 |
Fix use of $CHANGED_SOURCES with the --config=force option so that
.sconsign build state stays consistent.
Diffstat (limited to 'src/engine/SCons/SConf.py')
-rw-r--r-- | src/engine/SCons/SConf.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/engine/SCons/SConf.py b/src/engine/SCons/SConf.py index 6461dda..fbf193a 100644 --- a/src/engine/SCons/SConf.py +++ b/src/engine/SCons/SConf.py @@ -314,6 +314,17 @@ class SConfBuildTask(SCons.Taskmaster.AlwaysTask): s = sys.stdout = sys.stderr = Streamer(sys.stdout) try: env = self.targets[0].get_build_env() + if cache_mode == FORCE: + # Set up the Decider() to force rebuilds by saying + # that every source has changed. Note that we still + # call the environment's underlying source decider so + # that the correct .sconsign info will get calculated + # and keep the build state consistent. + def force_build(dependency, target, prev_ni, + env_decider=env.decide_source): + env_decider(dependency, target, prev_ni) + return True + env.Decider(force_build) env['PSTDOUT'] = env['PSTDERR'] = s try: sconf.cached = 0 |