Index: build/config/android/internal_rules.gni |
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni |
index 0187978c7feaf9352b4c27e244e0a56bf9ac69b4..3b80165383ef66b12390c017b1421f8c3eab6e61 100644 |
--- a/build/config/android/internal_rules.gni |
+++ b/build/config/android/internal_rules.gni |
@@ -1190,10 +1190,10 @@ if (enable_java_templates) { |
defined(invoker.supports_android) && invoker.supports_android && |
(is_java_debug || dcheck_always_on) |
- _retrolambda = |
+ _desugar = |
defined(invoker.supports_android) && invoker.supports_android && |
((defined(invoker.process_java8) && invoker.process_java8) || use_java8) |
- |
+ |
_deps = [] |
_previous_output_jar = _input_jar_path |
@@ -1269,14 +1269,17 @@ if (enable_java_templates) { |
_previous_output_jar = _assert_output_jar |
} |
- if (_retrolambda) { |
- _retrolambda_target = "${target_name}__retrolambda" |
- _retrolambda_input_jar = _previous_output_jar |
- _retrolambda_output_jar = "$target_out_dir/$target_name-retrolambda.jar" |
+ assert(!defined(invoker.alternative_android_sdk_ijar) || |
+ invoker.alternative_android_sdk_ijar != "") |
+ assert(!defined(invoker.alternative_android_sdk_ijar_dep) || |
+ invoker.alternative_android_sdk_ijar_dep != "") |
+ if (_desugar) { |
+ _desugar_target = "${target_name}__desugar" |
+ _desugar_input_jar = _previous_output_jar |
+ _desugar_output_jar = "$target_out_dir/$target_name-desugar.jar" |
- android_sdk_jar = "$android_sdk/android.jar" |
- action(_retrolambda_target) { |
- script = "//build/android/gyp/retrolambda.py" |
+ action(_desugar_target) { |
+ script = "//build/android/gyp/desugar.py" |
deps = _deps |
if (defined(invoker.deps)) { |
deps += invoker.deps |
@@ -1286,27 +1289,35 @@ if (enable_java_templates) { |
} |
inputs = [ |
_build_config, |
- _retrolambda_input_jar, |
+ _desugar_input_jar, |
] |
outputs = [ |
- _retrolambda_output_jar, |
+ _desugar_output_jar, |
] |
+ if (defined(invoker.alternative_android_sdk_ijar)) { |
+ deps += [ invoker.alternative_android_sdk_ijar_dep ] |
+ _android_sdk_ijar = invoker.alternative_android_sdk_ijar |
+ } else { |
+ deps += [ "//build/android:android_ijar" ] |
+ _android_sdk_ijar = "$root_out_dir/lib.java/android.interface.jar" |
+ } |
+ inputs += [ _android_sdk_ijar ] |
args = [ |
"--input-jar", |
- rebase_path(_retrolambda_input_jar, root_build_dir), |
+ rebase_path(_desugar_input_jar, root_build_dir), |
"--output-jar", |
- rebase_path(_retrolambda_output_jar, root_build_dir), |
+ rebase_path(_desugar_output_jar, root_build_dir), |
"--classpath=@FileArg($_rebased_build_config:javac:classpath)", |
- "--android-sdk-jar", |
- rebase_path(android_sdk_jar, root_build_dir), |
+ "--bootclasspath-entry", |
+ rebase_path(_android_sdk_ijar, root_build_dir), |
] |
} |
_deps = [] |
- _deps = [ ":$_retrolambda_target" ] |
- _previous_output_jar = _retrolambda_output_jar |
+ _deps = [ ":$_desugar_target" ] |
+ _previous_output_jar = _desugar_output_jar |
} |
- |
+ |
_output_jar_target = "${target_name}__copy" |
copy(_output_jar_target) { |
deps = _deps |
@@ -2053,8 +2064,8 @@ if (enable_java_templates) { |
forward_variables_from(invoker, |
[ |
"jar_excluded_patterns", |
- "strip_resource_classes", |
"process_java8", |
+ "strip_resource_classes", |
]) |
visibility = [ |
@@ -2346,7 +2357,12 @@ if (enable_java_templates) { |
} |
process_java_prebuilt(_process_prebuilt_target_name) { |
- forward_variables_from(invoker, [ "jar_excluded_patterns" ]) |
+ forward_variables_from(invoker, |
+ [ |
+ "alternative_android_sdk_ijar", |
+ "alternative_android_sdk_ijar_dep", |
+ "jar_excluded_patterns", |
+ ]) |
supports_android = _supports_android |
build_config = _build_config |
input_jar_path = _javac_jar_path |