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'] = { |