summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2005-01-23 14:11:50 (GMT)
committerSteven Knight <knight@baldmt.com>2005-01-23 14:11:50 (GMT)
commit09599aef30df7b9abedd8311187b10efd3f57c7d (patch)
tree864690d80f1a70610307f078dace8365db3c2a6f /src
parent9b2dae34a2a0fd013b7849e4f8a8d7adb1bc136c (diff)
downloadSCons-09599aef30df7b9abedd8311187b10efd3f57c7d.zip
SCons-09599aef30df7b9abedd8311187b10efd3f57c7d.tar.gz
SCons-09599aef30df7b9abedd8311187b10efd3f57c7d.tar.bz2
Only call filter() to remove ignored dependencies if something has been Ignore()ed for the node in question.
Diffstat (limited to 'src')
-rw-r--r--src/engine/SCons/Node/__init__.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/engine/SCons/Node/__init__.py b/src/engine/SCons/Node/__init__.py
index 6b4c996..f1150c4 100644
--- a/src/engine/SCons/Node/__init__.py
+++ b/src/engine/SCons/Node/__init__.py
@@ -584,13 +584,13 @@ class Node:
executor = self.get_executor()
sourcelist = executor.get_source_binfo(calc)
+ depends = self.depends
+ implicit = self.implicit or []
- sourcelist = filter(lambda t, s=self: s.do_not_ignore(t[0]), sourcelist)
- depends = filter(self.do_not_ignore, self.depends)
- if self.implicit is None:
- implicit = []
- else:
- implicit = filter(self.do_not_ignore, self.implicit)
+ if self.ignore:
+ sourcelist = filter(lambda t, s=self: s.do_not_ignore(t[0]), sourcelist)
+ depends = filter(self.do_not_ignore, depends)
+ implicit = filter(self.do_not_ignore, implicit)
def calc_signature(node, calc=calc):
return node.calc_signature(calc)
@@ -761,7 +761,10 @@ class Node:
def _children_get(self):
"__cacheable__"
- return filter(self.do_not_ignore, self.all_children(scan=0))
+ children = self.all_children(scan=0)
+ if self.ignore:
+ children = filter(self.do_not_ignore, children)
+ return children
def children(self, scan=1):
"""Return a list of the node's direct children, minus those