diff options
author | Florian Miedniak <florian.miedniak@web.de> | 2015-09-22 08:47:29 (GMT) |
---|---|---|
committer | Florian Miedniak <florian.miedniak@web.de> | 2015-09-22 08:47:29 (GMT) |
commit | 600def5cde72f16a2684005ced499dff9d0e5653 (patch) | |
tree | 581374b134eebe16ba4c1d62b9f2f9ad6b067b2d /src/engine/SCons/Node/FS.py | |
parent | 9fee88e50ebc808dff8aae58fea35b354af83d0a (diff) | |
download | SCons-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.py | 7 |
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): |