diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn index 98ba0da641..50ae3e7d10 100644 --- a/sdk/android/BUILD.gn +++ b/sdk/android/BUILD.gn @@ -438,12 +438,63 @@ rtc_shared_library("libjingle_peerconnection_so") { output_extension = "so" } -dist_jar("libwebrtc") { +template("java8_dist_jar") { + _deps = [] + _output_jars = [] + foreach(dep, invoker.deps) { + _dep_name = get_label_info(dep, "name") + _source_jar = get_label_info(dep, "target_gen_dir") + "/" + _dep_name + + "__compile_java.javac.jar" + _output_jar = "$target_gen_dir/" + _dep_name + ".jar" + + _copy_dep = dep + "__compile_java__javac" + _copy_target_name = "${target_name}_${_dep_name}_copy" + + copy(_copy_target_name) { + sources = [ + _source_jar, + ] + outputs = [ + _output_jar, + ] + deps = [ + _copy_dep, + ] + } + _deps += [ ":" + _copy_target_name ] + _output_jars += [ _output_jar ] + } + + action(target_name) { + forward_variables_from(invoker, [ "data" ]) + script = "//build/android/gyp/create_dist_jar.py" + depfile = "$target_gen_dir/$target_name.d" + deps = _deps + + outputs = [ + invoker.output, + ] + + args = [ + "--depfile", + rebase_path(depfile, root_build_dir), + "--output", + rebase_path(invoker.output, root_build_dir), + ] + + foreach(output_jar, _output_jars) { + args += [ + "--inputs", + rebase_path(output_jar, root_build_dir), + ] + } + } +} + +java8_dist_jar("libwebrtc") { _target_dir_name = get_label_info(":$target_name", "dir") output = "${root_out_dir}/lib.java${_target_dir_name}/${target_name}.jar" - direct_deps_only = true - use_interface_jars = false - requires_android = true + deps = [ ":libjingle_peerconnection_java", ":libjingle_peerconnection_metrics_default_java",