summaryrefslogtreecommitdiffstats
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)
commit6bec8f2af404ddfb6fd20cb101772b363182fce1 (patch)
tree864690d80f1a70610307f078dace8365db3c2a6f
parent20e3b80957a63c3ed047ac884c4a404c3e73d549 (diff)
downloadSCons-6bec8f2af404ddfb6fd20cb101772b363182fce1.zip
SCons-6bec8f2af404ddfb6fd20cb101772b363182fce1.tar.gz
SCons-6bec8f2af404ddfb6fd20cb101772b363182fce1.tar.bz2
Only call filter() to remove ignored dependencies if something has been Ignore()ed for the node in question.
-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