diff --git a/waflib/Node.py b/waflib/Node.py index bbd6c587..2f79bfea 100644 --- a/waflib/Node.py +++ b/waflib/Node.py @@ -282,6 +282,12 @@ class Node(object): ret = cur + try: + os.stat(ret.abspath()) + except: + del ret.parent.children[ret.name] + return None + try: while not getattr(cur.parent, 'cache_isdir', None): cur = cur.parent @@ -688,9 +694,7 @@ class Node(object): node = self.get_bld().search(lst) if not node: self = self.get_src() - node = self.search(lst) - if not node: - node = self.find_node(lst) + node = self.find_node(lst) try: pat = node.abspath() if os.path.isdir(pat): diff --git a/waflib/TaskGen.py b/waflib/TaskGen.py index 95cb3204..3744ee06 100644 --- a/waflib/TaskGen.py +++ b/waflib/TaskGen.py @@ -505,10 +505,10 @@ def to_nodes(self, lst, path=None): for x in Utils.to_list(lst): if isinstance(x, str): node = find(x) - if not node: - raise Errors.WafError("source not found: %r in %r" % (x, self)) else: node = x + if not node: + raise Errors.WafError("source not found: %r in %r" % (x, self)) tmp.append(node) return tmp