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

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

Issue 2141153002: Fix java_group() handling in write_build_config.py. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: added some comments Created 4 years, 5 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
« no previous file with comments | « no previous file | no next file » | 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 a58da3a7d74c748b75d9b1cd24f63e4a428e29e9..70bc6d08104a0a6e08165a6b5daa52ce3be97fcb 100755
--- a/build/android/gyp/write_build_config.py
+++ b/build/android/gyp/write_build_config.py
@@ -91,23 +91,12 @@ def GetAllDepsConfigsInOrder(deps_config_paths):
return build_utils.GetSortedTransitiveDependencies(deps_config_paths, GetDeps)
-def ResolveGroups(configs):
- while True:
- groups = DepsOfType('group', configs)
- if not groups:
- return configs
- for config in groups:
- index = configs.index(config)
- expanded_configs = [GetDepConfig(p) for p in config['deps_configs']]
- configs[index:index + 1] = expanded_configs
-
-
class Deps(object):
def __init__(self, direct_deps_config_paths):
self.all_deps_config_paths = GetAllDepsConfigsInOrder(
direct_deps_config_paths)
- self.direct_deps_configs = ResolveGroups(
- [GetDepConfig(p) for p in direct_deps_config_paths])
+ self.direct_deps_configs = [
+ 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
@@ -174,14 +163,34 @@ def _MergeAssets(all_assets):
return create_list(compressed), create_list(uncompressed)
-def _FilterUnwantedDepsPaths(dep_paths, target_type):
+def _ResolveGroups(configs):
+ """Returns a list of configs with all groups inlined."""
+ ret = list(configs)
+ while True:
+ groups = DepsOfType('group', ret)
+ if not groups:
+ return ret
+ for config in groups:
+ index = ret.index(config)
+ expanded_configs = [GetDepConfig(p) for p in config['deps_configs']]
+ ret[index:index + 1] = expanded_configs
+
+
+def _FilterDepsPaths(dep_paths, target_type):
+ """Resolves all groups and trims dependency branches that we never want.
+
+ E.g. When a resource or asset depends on an apk target, the intent is to
+ include the .apk as a resource/asset, not to have the apk's classpath added.
Ian Wen 2016/07/14 17:14:53 This makes so much sense! Thanks for the comment!
+ """
+ configs = [GetDepConfig(p) for p in dep_paths]
+ configs = _ResolveGroups(configs)
# Don't allow root targets to be considered as a dep.
- ret = [p for p in dep_paths if GetDepConfig(p)['type'] not in _ROOT_TYPES]
+ configs = [c for c in configs if c['type'] not in _ROOT_TYPES]
# Don't allow java libraries to cross through assets/resources.
if target_type in _RESOURCE_TYPES:
- ret = [p for p in ret if GetDepConfig(p)['type'] in _RESOURCE_TYPES]
- return ret
+ configs = [c for c in configs if c['type'] in _RESOURCE_TYPES]
+ return [c['path'] for c in configs]
def _AsInterfaceJar(jar_path):
@@ -307,8 +316,8 @@ def main(argv):
'--supports-android is required when using --requires-android')
direct_deps_config_paths = build_utils.ParseGypList(options.deps_configs)
- direct_deps_config_paths = _FilterUnwantedDepsPaths(direct_deps_config_paths,
- options.type)
+ direct_deps_config_paths = _FilterDepsPaths(direct_deps_config_paths,
+ options.type)
deps = Deps(direct_deps_config_paths)
all_inputs = deps.AllConfigPaths() + build_utils.GetPythonDependencies()
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698