diff options
author | Steven Knight <knight@baldmt.com> | 2004-02-24 06:19:49 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2004-02-24 06:19:49 (GMT) |
commit | 4b3d35e6964da9108f1d55a8d0dbb2161300bd3f (patch) | |
tree | 21ab8d3cc408214f1e550bf4df7a27c3b45115fe /src/engine/SCons/Executor.py | |
parent | d8b17914c7e3983c6c68c7aea2f0a835f00ddb07 (diff) | |
download | SCons-4b3d35e6964da9108f1d55a8d0dbb2161300bd3f.zip SCons-4b3d35e6964da9108f1d55a8d0dbb2161300bd3f.tar.gz SCons-4b3d35e6964da9108f1d55a8d0dbb2161300bd3f.tar.bz2 |
Handle recursive substitution in overrides.
Diffstat (limited to 'src/engine/SCons/Executor.py')
-rw-r--r-- | src/engine/SCons/Executor.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/engine/SCons/Executor.py b/src/engine/SCons/Executor.py index 8151f87..b636f60 100644 --- a/src/engine/SCons/Executor.py +++ b/src/engine/SCons/Executor.py @@ -69,6 +69,12 @@ class Executor: # The normal case: use the Environment that was # used to specify how these targets will be built. env = self.env + + # Create the build environment instance with appropriate + # overrides. These get evaluated against the current + # environment's construction variables so that users can + # add to existing values by referencing the variable in + # the expansion. overrides = {} overrides.update(self.builder.overrides) overrides.update(self.overrides) @@ -78,8 +84,13 @@ class Executor: pass else: overrides.update(generate_build_dict()) - overrides.update(SCons.Util.subst_dict(self.targets, self.sources)) self.build_env = env.Override(overrides) + + # Now update the build environment with the things that we + # don't want expanded against the current construction + # variables. + self.build_env._update(SCons.Util.subst_dict(self.targets, + self.sources)) return self.build_env def get_action_list(self, target): |