summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Executor.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-02-24 06:19:49 (GMT)
committerSteven Knight <knight@baldmt.com>2004-02-24 06:19:49 (GMT)
commit4b3d35e6964da9108f1d55a8d0dbb2161300bd3f (patch)
tree21ab8d3cc408214f1e550bf4df7a27c3b45115fe /src/engine/SCons/Executor.py
parentd8b17914c7e3983c6c68c7aea2f0a835f00ddb07 (diff)
downloadSCons-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.py13
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):