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

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

Issue 2416073003: Only list direct deps as java libraries
Patch Set: add c++_shared Created 4 years, 2 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 | build/config/android/internal_rules.gni » ('j') | build/config/android/internal_rules.gni » ('J')
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 8f4580eaa6d113fd86683fbd2a8dcdda9aabacf8..5ccd14bd75b207726ce9dca52edee1f5161fabb1 100755
--- a/build/android/gyp/write_build_config.py
+++ b/build/android/gyp/write_build_config.py
@@ -198,23 +198,32 @@ def _AsInterfaceJar(jar_path):
def _ExtractSharedLibsFromRuntimeDeps(runtime_deps_files):
- ret = []
+ """Returns sorted direct and all deps.
agrieve 2016/10/26 19:46:18 Not sure this makes sense. How about: Returns a t
+ """
+ all_deps = set()
+ direct_deps = []
for path in runtime_deps_files:
with open(path) as f:
+ first_line = True
for line in f:
line = line.rstrip()
- if not line.endswith('.so'):
+ if first_line:
+ if not line.endswith('.so'):
+ raise Exception('Wrong runtime deps file %s' % path)
+ direct_deps.append(os.path.normpath(line))
+ first_line = False
+ elif not line.endswith('.so'):
continue
- ret.append(os.path.normpath(line))
- ret.reverse()
- return ret
+ all_deps.add(os.path.normpath(line))
+ return sorted(direct_deps), sorted(all_deps)
def _CreateJavaLibrariesList(library_paths):
"""Returns a java literal array with the "base" library names:
e.g. libfoo.so -> foo
"""
- return ('{%s}' % ','.join(['"%s"' % s[3:-3] for s in library_paths]))
+ return ('{%s}' % ','.join(['"%s"' % os.path.basename(s)[3:-3]
+ for s in library_paths]))
def _CreateLocalePaksAssetJavaList(assets):
@@ -624,18 +633,24 @@ def main(argv):
runtime_deps_files = build_utils.ParseGnList(
options.shared_libraries_runtime_deps or '[]')
if runtime_deps_files:
- library_paths = _ExtractSharedLibsFromRuntimeDeps(runtime_deps_files)
- java_libraries_list = _CreateJavaLibrariesList(library_paths)
+ direct_dep_libs, library_paths = _ExtractSharedLibsFromRuntimeDeps(
+ runtime_deps_files)
+ java_libraries_list = _CreateJavaLibrariesList(direct_dep_libs)
secondary_abi_library_paths = []
secondary_abi_java_libraries_list = None
secondary_abi_runtime_deps_files = build_utils.ParseGnList(
options.secondary_abi_shared_libraries_runtime_deps or '[]')
if secondary_abi_runtime_deps_files:
- secondary_abi_library_paths = _ExtractSharedLibsFromRuntimeDeps(
+ (secondary_abi_direct_dep_libs,
+ secondary_abi_library_paths) = _ExtractSharedLibsFromRuntimeDeps(
secondary_abi_runtime_deps_files)
secondary_abi_java_libraries_list = _CreateJavaLibrariesList(
- secondary_abi_library_paths)
+ secondary_abi_direct_dep_libs)
+ if java_libraries_list != secondary_abi_java_libraries_list:
+ raise Exception('Secondary abi library list should same as primary one.'
+ ' Secondary abi: %s, primary abi:%s'
+ % (secondary_abi_java_libraries_list, java_libraries_list))
all_inputs.extend(runtime_deps_files)
config['native'] = {
« no previous file with comments | « no previous file | build/config/android/internal_rules.gni » ('j') | build/config/android/internal_rules.gni » ('J')

Powered by Google App Engine
This is Rietveld 408576698