Index: build/android/gyp/util/build_utils.py |
diff --git a/build/android/gyp/util/build_utils.py b/build/android/gyp/util/build_utils.py |
index ddb3cb52a356a940fd5ff63b61243f1068b023c4..e3a3525e52e92295c9be5d52bb95766db3156e3c 100644 |
--- a/build/android/gyp/util/build_utils.py |
+++ b/build/android/gyp/util/build_utils.py |
@@ -232,6 +232,22 @@ def ZipDir(output, base_dir): |
outfile.write(path, archive_path) |
+def MergeZips(output, inputs, exclude_patterns=None): |
+ def Allow(name): |
+ if exclude_patterns is not None: |
+ for p in exclude_patterns: |
+ if fnmatch.fnmatch(name, p): |
+ return False |
+ return True |
+ |
+ with zipfile.ZipFile(output, 'w') as out_zip: |
+ for in_file in inputs: |
+ with zipfile.ZipFile(in_file, 'r') as in_zip: |
+ for name in in_zip.namelist(): |
+ if Allow(name): |
+ out_zip.writestr(name, in_zip.read(name)) |
+ |
+ |
def PrintWarning(message): |
print 'WARNING: ' + message |