| Index: build/android/gyp/process_resources.py
|
| diff --git a/build/android/gyp/process_resources.py b/build/android/gyp/process_resources.py
|
| index 0fe02dfa84877a41a354526da0eaf635ecf3774b..a31d00072812f43680894fa343f2d315ce933c71 100755
|
| --- a/build/android/gyp/process_resources.py
|
| +++ b/build/android/gyp/process_resources.py
|
| @@ -155,6 +155,20 @@ def ZipResources(resource_dirs, zip_path):
|
| outzip.write(path, archive_path)
|
|
|
|
|
| +def CombineZips(zip_files, output_path):
|
| + # When packaging resources, if the top-level directories in the zip file are
|
| + # of the form 0, 1, ..., then each subdirectory will be passed to aapt as a
|
| + # resources directory. While some resources just clobber others (image files,
|
| + # etc), other resources (particularly .xml files) need to be more
|
| + # intelligently merged. That merging is left up to aapt.
|
| + with zipfile.ZipFile(output_path, 'w') as outzip:
|
| + for i, z in enumerate(zip_files):
|
| + with zipfile.ZipFile(z, 'r') as inzip:
|
| + for name in inzip.namelist():
|
| + new_name = '%d/%s' % (i, name)
|
| + outzip.writestr(new_name, inzip.read(name))
|
| +
|
| +
|
| def main():
|
| args = build_utils.ExpandFileArgs(sys.argv[1:])
|
|
|
| @@ -248,8 +262,8 @@ def main():
|
| ZipResources(zip_resource_dirs, options.resource_zip_out)
|
|
|
| if options.all_resources_zip_out:
|
| - ZipResources(
|
| - zip_resource_dirs + dep_subdirs, options.all_resources_zip_out)
|
| + CombineZips([options.resource_zip_out] + dep_zips,
|
| + options.all_resources_zip_out)
|
|
|
| if options.R_dir:
|
| build_utils.DeleteDirectory(options.R_dir)
|
|
|