Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(219)

Unified Diff: third_party/scons/scons-local/SCons/Subst.py

Issue 20025: Update SCons to latest checkpoint release, 1.2.0.d20090113.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/scons/scons-local/SCons/Sig.py ('k') | third_party/scons/scons-local/SCons/Taskmaster.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/scons/scons-local/SCons/Subst.py
===================================================================
--- third_party/scons/scons-local/SCons/Subst.py (revision 9094)
+++ third_party/scons/scons-local/SCons/Subst.py (working copy)
@@ -5,7 +5,7 @@
"""
#
-# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 The SCons Foundation
+# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -27,7 +27,7 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
-__revision__ = "src/engine/SCons/Subst.py 3842 2008/12/20 22:59:52 scons"
+__revision__ = "src/engine/SCons/Subst.py 3897 2009/01/13 06:45:54 scons"
import re
import string
@@ -253,6 +253,15 @@
return repr(nl[0])
return ''
+class NullNodeList(SCons.Util.NullSeq):
+ def __call__(self, *args, **kwargs): return ''
+ def __str__(self): return ''
+ # TODO(1.5): unneeded after new-style classes introduce iterators
+ def __getitem__(self, i):
+ raise IndexError
+
+NullNodesList = NullNodeList()
+
def subst_dict(target, source):
"""Create a dictionary for substitution of special
construction variables.
@@ -279,9 +288,16 @@
tnl = NLWrapper(target, get_tgt_subst_proxy)
dict['TARGETS'] = Targets_or_Sources(tnl)
dict['TARGET'] = Target_or_Source(tnl)
+
+ # This is a total cheat, but hopefully this dictionary goes
+ # away soon anyway. We just let these expand to $TARGETS
+ # because that's "good enough" for the use of ToolSurrogates
+ # (see test/ToolSurrogate.py) to generate documentation.
+ dict['CHANGED_TARGETS'] = '$TARGETS'
+ dict['UNCHANGED_TARGETS'] = '$TARGETS'
else:
- dict['TARGETS'] = None
- dict['TARGET'] = None
+ dict['TARGETS'] = NullNodesList
+ dict['TARGET'] = NullNodesList
if source:
def get_src_subst_proxy(node):
@@ -298,9 +314,16 @@
snl = NLWrapper(source, get_src_subst_proxy)
dict['SOURCES'] = Targets_or_Sources(snl)
dict['SOURCE'] = Target_or_Source(snl)
+
+ # This is a total cheat, but hopefully this dictionary goes
+ # away soon anyway. We just let these expand to $TARGETS
+ # because that's "good enough" for the use of ToolSurrogates
+ # (see test/ToolSurrogate.py) to generate documentation.
+ dict['CHANGED_SOURCES'] = '$SOURCES'
+ dict['UNCHANGED_SOURCES'] = '$SOURCES'
else:
- dict['SOURCES'] = None
- dict['SOURCE'] = None
+ dict['SOURCES'] = NullNodesList
+ dict['SOURCE'] = NullNodesList
return dict
@@ -386,11 +409,9 @@
source with two methods (substitute() and expand()) that handle
the expansion.
"""
- def __init__(self, env, mode, target, source, conv, gvars):
+ def __init__(self, env, mode, conv, gvars):
self.env = env
self.mode = mode
- self.target = target
- self.source = source
self.conv = conv
self.gvars = gvars
@@ -427,14 +448,14 @@
except Exception, e:
if e.__class__ in AllowableExceptions:
return ''
- raise_exception(e, self.target, s)
+ raise_exception(e, lvars['TARGETS'], s)
else:
if lvars.has_key(key):
s = lvars[key]
elif self.gvars.has_key(key):
s = self.gvars[key]
elif not NameError in AllowableExceptions:
- raise_exception(NameError(key), self.target, s)
+ raise_exception(NameError(key), lvars['TARGETS'], s)
else:
return ''
@@ -460,8 +481,8 @@
return map(func, s)
elif callable(s):
try:
- s = s(target=self.target,
- source=self.source,
+ s = s(target=lvars['TARGETS'],
+ source=lvars['SOURCES'],
env=self.env,
for_signature=(self.mode != SUBST_CMD))
except TypeError:
@@ -519,10 +540,11 @@
# If we dropped that behavior (or found another way to cover it),
# we could get rid of this call completely and just rely on the
# Executor setting the variables.
- d = subst_dict(target, source)
- if d:
- lvars = lvars.copy()
- lvars.update(d)
+ if not lvars.has_key('TARGET'):
+ d = subst_dict(target, source)
+ if d:
+ lvars = lvars.copy()
+ lvars.update(d)
# We're (most likely) going to eval() things. If Python doesn't
# find a __builtins__ value in the global dictionary used for eval(),
@@ -532,7 +554,7 @@
# for expansion.
gvars['__builtins__'] = __builtins__
- ss = StringSubber(env, mode, target, source, conv, gvars)
+ ss = StringSubber(env, mode, conv, gvars)
result = ss.substitute(strSubst, lvars)
try:
@@ -589,12 +611,10 @@
and the rest of the object takes care of doing the right thing
internally.
"""
- def __init__(self, env, mode, target, source, conv, gvars):
+ def __init__(self, env, mode, conv, gvars):
UserList.UserList.__init__(self, [])
self.env = env
self.mode = mode
- self.target = target
- self.source = source
self.conv = conv
self.gvars = gvars
@@ -643,14 +663,14 @@
except Exception, e:
if e.__class__ in AllowableExceptions:
return
- raise_exception(e, self.target, s)
+ raise_exception(e, lvars['TARGETS'], s)
else:
if lvars.has_key(key):
s = lvars[key]
elif self.gvars.has_key(key):
s = self.gvars[key]
elif not NameError in AllowableExceptions:
- raise_exception(NameError(), self.target, s)
+ raise_exception(NameError(), lvars['TARGETS'], s)
else:
return
@@ -670,8 +690,8 @@
self.next_word()
elif callable(s):
try:
- s = s(target=self.target,
- source=self.source,
+ s = s(target=lvars['TARGETS'],
+ source=lvars['SOURCES'],
env=self.env,
for_signature=(self.mode != SUBST_CMD))
except TypeError:
@@ -814,10 +834,11 @@
# If we dropped that behavior (or found another way to cover it),
# we could get rid of this call completely and just rely on the
# Executor setting the variables.
- d = subst_dict(target, source)
- if d:
- lvars = lvars.copy()
- lvars.update(d)
+ if not lvars.has_key('TARGET'):
+ d = subst_dict(target, source)
+ if d:
+ lvars = lvars.copy()
+ lvars.update(d)
# We're (most likely) going to eval() things. If Python doesn't
# find a __builtins__ value in the global dictionary used for eval(),
@@ -827,7 +848,7 @@
# for expansion.
gvars['__builtins__'] = __builtins__
- ls = ListSubber(env, mode, target, source, conv, gvars)
+ ls = ListSubber(env, mode, conv, gvars)
ls.substitute(strSubst, lvars, 0)
try:
« no previous file with comments | « third_party/scons/scons-local/SCons/Sig.py ('k') | third_party/scons/scons-local/SCons/Taskmaster.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698