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

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

Issue 1554533003: port alternative_locale_resource to GN. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 5 years 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
« no previous file with comments | « no previous file | build/config/android/internal_rules.gni » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/gyp/write_build_config.py
diff --git a/build/android/gyp/write_build_config.py b/build/android/gyp/write_build_config.py
index f84958c1661dabb91503e001a404b6ca5631de28..a61f980597d6016855fa8d0ffddbfb3a36accd31 100755
--- a/build/android/gyp/write_build_config.py
+++ b/build/android/gyp/write_build_config.py
@@ -101,6 +101,7 @@ class Deps(object):
GetDepConfig(p) for p in direct_deps_config_paths]
self.all_deps_configs = [
GetDepConfig(p) for p in self.all_deps_config_paths]
+ self.direct_deps_config_paths = direct_deps_config_paths
def All(self, wanted_type=None):
if type is None:
@@ -115,6 +116,11 @@ class Deps(object):
def AllConfigPaths(self):
return self.all_deps_config_paths
+ def RemoveNonDirectDep(self, path):
+ if path in self.direct_deps_config_paths:
+ raise Exception('Cannot remove direct dep.')
+ self.all_deps_config_paths.remove(path)
+ self.all_deps_configs.remove(GetDepConfig(path))
def _MergeAssets(all_assets):
"""Merges all assets from the given deps.
@@ -180,6 +186,8 @@ def main(argv):
parser.add_option('--package-name',
help='Java package name for these resources.')
parser.add_option('--android-manifest', help='Path to android manifest.')
+ parser.add_option('--is-locale-resource', action='store_true',
+ help='Whether it is locale resource.')
# android_assets options
parser.add_option('--asset-sources', help='List of asset sources.')
@@ -216,6 +224,8 @@ def main(argv):
help='Whether proguard is enabled for this apk.')
parser.add_option('--proguard-info',
help='Path to the proguard .info output for this apk.')
+ parser.add_option('--has-alternative-locale-resource', action='store_true',
+ help='Whether there is alternative-locale-resource in direct deps')
options, args = parser.parse_args(argv)
@@ -265,6 +275,21 @@ def main(argv):
deps = Deps(direct_deps_config_paths)
+ # Remove other locale resources if there is alternative_locale_resource in
+ # direct deps.
+ if options.has_alternative_locale_resource:
+ alternative = [r['path'] for r in deps.Direct('android_resources')
+ if r.get('is_locale_resource')]
+ # We can only have one locale resources in direct deps.
+ if len(alternative) != 1:
+ raise Exception('The number of locale resource in direct deps is wrong %d'
+ % len(alternative))
+ unwanted = [r['path'] for r in deps.All('android_resources')
+ if r.get('is_locale_resource') and r['path'] not in alternative]
+ for p in unwanted:
+ deps.RemoveNonDirectDep(p)
+
+
direct_library_deps = deps.Direct('java_library')
all_library_deps = deps.All('java_library')
@@ -362,6 +387,8 @@ def main(argv):
deps_info['package_name'] = options.package_name
if options.r_text:
deps_info['r_text'] = options.r_text
+ if options.is_locale_resource:
+ deps_info['is_locale_resource'] = True
if options.type in ('android_resources','android_apk', 'resource_rewriter'):
config['resources'] = {}
« no previous file with comments | « no previous file | build/config/android/internal_rules.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698