Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(189)

Unified Diff: build/android/gyp/locale_pak_assets.py

Issue 2345143002: Move language pak files to assets. (Closed)
Patch Set: Move resource initialization back to ChromeApplication Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: build/android/gyp/locale_pak_assets.py
diff --git a/build/android/gyp/locale_pak_assets.py b/build/android/gyp/locale_pak_assets.py
new file mode 100755
index 0000000000000000000000000000000000000000..b7e7ea269997a0c3b27bb060d623a1126c2e1955
--- /dev/null
+++ b/build/android/gyp/locale_pak_assets.py
@@ -0,0 +1,104 @@
+#!/usr/bin/env python
+#
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+"""Creates a srcjar for locale pak file paths.
+
+Creates a srcjar with a class containing an array of locale pak files so that
+these assets can be enumerated and extracted as necessary. This is much
+more efficient than using AssetManager.list().
+
+The generated class implements:
+ //base/android/java/src/org/chromium/base/LocalePakFiles.java
+
+Providing access to pak file paths via:
+ public static String[] getFiles()
+"""
+
+import argparse
+import collections
+import os
+import string
+import sys
+import zipfile
+
+sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir))
+from pylib.constants import host_paths
+from util import build_utils
+
+_CLASSNAME = 'LocalePakFiles'
+_PACKAGE = 'org.chromium.ui'
+_THIS_FILE = os.path.abspath(__file__)
+
+
+def _CreateLocalePakFilesJava(pakfiles, package, classname, target):
+ """Generate the java file contents for the locale pak file class."""
+ file_tmpl = string.Template("""
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file is generated by:
+// ${THIS_FILE}
+// From target:
+// ${TARGET}
+
+package ${PACKAGE};
+
+import org.chromium.base.annotations.SuppressFBWarnings;
+
+public class LocalePakFiles {
+ private static String[] pakFiles = {${PAKFILES}};
+
+ @SuppressFBWarnings("MS_EXPOSE_REP")
+ public static String[] getFiles() {
+ return pakFiles;
+ }
+}
+""")
+
+ values = {
+ 'TARGET': target,
+ 'PACKAGE': package,
+ 'CLASSNAME': classname,
+ 'THIS_FILE': os.path.relpath(_THIS_FILE, host_paths.DIR_SOURCE_ROOT),
+ 'PAKFILES': ', '.join('"%s"' % p for p in pakfiles),
+ }
+
+ return file_tmpl.substitute(values)
+
+
+def _WriteJarOutput(output_path, in_zip_path, data):
+ """Write file data to a srcjar."""
+ path = os.path.dirname(output_path)
+ if path and not os.path.exists(path):
+ os.makedirs(path)
+ with zipfile.ZipFile(output_path, 'w') as srcjar:
+ build_utils.AddToZipHermetic(srcjar, in_zip_path, data=data)
+
+
+def main():
+ parser = argparse.ArgumentParser()
+ build_utils.AddDepfileOption(parser)
+ parser.add_argument('--locale-paks', required=True,
+ help='List of pak file paths to be added to srcjar')
+ parser.add_argument('--srcjar', required=True, help='Path to output srcjar')
+ parser.add_argument('--target', required=True, help='Target invoking script')
+
+ args = parser.parse_args()
+
+ sources = build_utils.ParseGnList(args.locale_paks)
+
+ if args.depfile:
+ build_utils.WriteDepfile(args.depfile, args.srcjar)
+
+ pakfiles = [os.path.basename(s) for s in sources]
+ srcjar_contents = _CreateLocalePakFilesJava(
+ pakfiles, _PACKAGE, _CLASSNAME, args.target)
+ in_zip_path = os.path.join(_PACKAGE.replace('.', '/'), _CLASSNAME + '.java')
+ _WriteJarOutput(args.srcjar, in_zip_path, srcjar_contents)
+
+
+if __name__ == '__main__':
+ sys.exit(main())
« no previous file with comments | « blimp/client/app/android/java/src/org/chromium/blimp/BlimpApplication.java ('k') | build/android/gyp/locale_pak_resources.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698