Index: build/config/android/rules.gni |
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni |
index 4b851beebbda8ef03e0772f5bb313b1bdcbd2665..530991526caba17fbbd0a9aa896f27417acc159e 100644 |
--- a/build/config/android/rules.gni |
+++ b/build/config/android/rules.gni |
@@ -1694,6 +1694,28 @@ if (enable_java_templates) { |
if (defined(invoker.enable_chromium_linker_tests)) { |
_enable_chromium_linker_tests = invoker.enable_chromium_linker_tests |
} |
+ _ordered_libraries_json = |
+ "$target_gen_dir/$target_name.ordered_libararies.json" |
+ _rebased_ordered_libraries_json = |
+ rebase_path(_ordered_libraries_json, root_build_dir) |
+ _ordered_libraries_target = "${_template_name}__write_ordered_libraries" |
+ |
+ # TODO(agrieve): Make GN write runtime deps in dependency order so as to |
+ # not need this manual sorting step. |
+ action(_ordered_libraries_target) { |
+ script = "//build/android/gyp/write_ordered_libraries.py" |
+ deps = _native_libs_deps + [ ":$build_config_target" ] |
+ outputs = [ |
+ _ordered_libraries_json, |
+ ] |
+ _rebased_android_readelf = rebase_path(android_readelf, root_build_dir) |
+ args = [ |
+ "--readelf=$_rebased_android_readelf", |
+ "--output=$_rebased_ordered_libraries_json", |
+ "--libraries-dir=.", |
+ "--input-libraries=@FileArg($_rebased_build_config:native:libraries)", |
+ ] |
+ } |
java_cpp_template("${_template_name}__native_libraries_java") { |
package_name = "org/chromium/base/library_loader" |
@@ -1701,10 +1723,10 @@ if (enable_java_templates) { |
"//base/android/java/templates/NativeLibraries.template", |
] |
inputs = [ |
- _build_config, |
+ _ordered_libraries_json, |
] |
deps = [ |
- ":$build_config_target", |
+ ":${_ordered_libraries_target}", |
] |
if (_native_lib_version_rule != "") { |
deps += [ _native_lib_version_rule ] |
@@ -1712,7 +1734,7 @@ if (enable_java_templates) { |
defines = [ |
"NATIVE_LIBRARIES_LIST=" + |
- "@FileArg($_rebased_build_config:native:java_libraries_list)", |
+ "@FileArg($_rebased_ordered_libraries_json:java_libraries_list)", |
"NATIVE_LIBRARIES_VERSION_NUMBER=$_native_lib_version_arg", |
] |
if (_use_chromium_linker) { |