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