Update AAR-generation to use non-preprocessed jar files.

Previously Java 8 bytecode was transpiled into Java 7 bytecode for AAR.
With this change we instead include Java 8 bytecode in the AAR.

This drops support for Java 7 but allows using Java 8 features such as
static methods in interfaces and default methods.

Bug: webrtc:8084, chromium:762967
Change-Id: I3c6ec9332c5612b7ed811a81957f25c94c80da70
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/21222
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20849}
This commit is contained in:
Sami Kalliomäki 2017-11-08 14:24:41 +01:00 committed by Commit Bot
parent 6a82207e4e
commit 7bc55b8e84

View File

@ -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",