summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node/FS.py
diff options
context:
space:
mode:
authorFlorian Miedniak <florian.miedniak@web.de>2015-09-22 08:47:29 (GMT)
committerFlorian Miedniak <florian.miedniak@web.de>2015-09-22 08:47:29 (GMT)
commit600def5cde72f16a2684005ced499dff9d0e5653 (patch)
tree581374b134eebe16ba4c1d62b9f2f9ad6b067b2d /src/engine/SCons/Node/FS.py
parent9fee88e50ebc808dff8aae58fea35b354af83d0a (diff)
downloadSCons-600def5cde72f16a2684005ced499dff9d0e5653.zip
SCons-600def5cde72f16a2684005ced499dff9d0e5653.tar.gz
SCons-600def5cde72f16a2684005ced499dff9d0e5653.tar.bz2
Fixed #3011: Glob() called with exclude didn't work when called from a SConscript that is executed with variant_dir set and duplicate=0
Diffstat (limited to 'src/engine/SCons/Node/FS.py')
-rw-r--r--src/engine/SCons/Node/FS.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index a3db8fe..7461710 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -2182,7 +2182,12 @@ class Dir(Base):
r = [os.path.join(str(dir), x) for x in r]
result.extend(r)
if exclude:
- result = filter(lambda x: not any(fnmatch.fnmatch(str(x), e) for e in SCons.Util.flatten(exclude)), result)
+ excludes = []
+ excludeList = SCons.Util.flatten(exclude)
+ for x in excludeList:
+ r = self.glob(x, ondisk, source, strings)
+ excludes.extend(r)
+ result = filter(lambda x: not any(fnmatch.fnmatch(str(x), str(e)) for e in SCons.Util.flatten(excludes)), result)
return sorted(result, key=lambda a: str(a))
def _glob1(self, pattern, ondisk=True, source=False, strings=False):