diff options
| author | Gary Oberbrunner <garyo@oberbrunner.com> | 2008-10-01 02:47:36 (GMT) |
|---|---|---|
| committer | Gary Oberbrunner <garyo@oberbrunner.com> | 2008-10-01 02:47:36 (GMT) |
| commit | ded68b2d8674e37df7b7f0c5a9b5bf49780bcd02 (patch) | |
| tree | a552c544668ca726e3bb1508645fafd711d62d0a /src/engine/SCons | |
| parent | c0e7371604c74acdb3e6e941f3356328d240ca3d (diff) | |
| download | SCons-ded68b2d8674e37df7b7f0c5a9b5bf49780bcd02.zip SCons-ded68b2d8674e37df7b7f0c5a9b5bf49780bcd02.tar.gz SCons-ded68b2d8674e37df7b7f0c5a9b5bf49780bcd02.tar.bz2 | |
Add ability to use "$SOURCE" when specifying a target to a builder; fixes #2219.
Diffstat (limited to 'src/engine/SCons')
| -rw-r--r-- | src/engine/SCons/Builder.py | 2 | ||||
| -rw-r--r-- | src/engine/SCons/Subst.py | 13 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/engine/SCons/Builder.py b/src/engine/SCons/Builder.py index 977bdea..05a3ed1 100644 --- a/src/engine/SCons/Builder.py +++ b/src/engine/SCons/Builder.py @@ -505,7 +505,7 @@ class BuilderBase: tlist = [ t_from_s(pre, suf, splitext) ] else: target = self._adjustixes(target, pre, suf, self.ensure_suffix) - tlist = env.arg2nodes(target, target_factory) + tlist = env.arg2nodes(target, target_factory, target=target, source=source) if self.emitter: # The emitter is going to do str(node), but because we're diff --git a/src/engine/SCons/Subst.py b/src/engine/SCons/Subst.py index 8646f62..752bbff 100644 --- a/src/engine/SCons/Subst.py +++ b/src/engine/SCons/Subst.py @@ -270,7 +270,13 @@ def subst_dict(target, source): dict = {} if target: - tnl = NLWrapper(target, lambda x: x.get_subst_proxy()) + def get_tgt_subst_proxy(thing): + try: + subst_proxy = thing.get_subst_proxy() + except AttributeError: + subst_proxy = thing # probably a string, just return it + return subst_proxy + tnl = NLWrapper(target, get_tgt_subst_proxy) dict['TARGETS'] = Targets_or_Sources(tnl) dict['TARGET'] = Target_or_Source(tnl) else: @@ -285,7 +291,10 @@ def subst_dict(target, source): pass else: node = rfile() - return node.get_subst_proxy() + try: + return node.get_subst_proxy() + except AttributeError: + return node # probably a String, just return it snl = NLWrapper(source, get_src_subst_proxy) dict['SOURCES'] = Targets_or_Sources(snl) dict['SOURCE'] = Target_or_Source(snl) |
