Index: build/config/android/internal_rules.gni |
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni |
index d7712d5363c1debd13b3113992a120d4cad1e88f..35ea57c3a0079f5cf770dfb3e3df7f85f3d437ac 100644 |
--- a/build/config/android/internal_rules.gni |
+++ b/build/config/android/internal_rules.gni |
@@ -1181,10 +1181,15 @@ if (enable_java_templates) { |
defined(invoker.supports_android) && invoker.supports_android && |
(is_java_debug || dcheck_always_on) |
+ #TODO(zpeng): Remove Retrolambda when Desugar is enabled. |
agrieve
2017/07/20 00:26:52
Can we do this now rather than checking in an if (
F
2017/07/20 17:30:56
Done.
|
_retrolambda = |
defined(invoker.supports_android) && invoker.supports_android && |
((defined(invoker.process_java8) && invoker.process_java8) || use_java8) |
+ _desugar = false && |
+ defined(invoker.supports_android) && invoker.supports_android && |
+ ((defined(invoker.process_java8) && invoker.process_java8) || use_java8) |
+ |
_deps = [] |
_previous_output_jar = _input_jar_path |
@@ -1298,6 +1303,54 @@ if (enable_java_templates) { |
_previous_output_jar = _retrolambda_output_jar |
} |
+ 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(_desugar_target) { |
+ script = "//build/android/gyp/desugar.py" |
+ deps = _deps |
+ if (defined(invoker.deps)) { |
+ deps += invoker.deps |
+ } |
+ if (defined(invoker.public_deps)) { |
+ public_deps = invoker.public_deps |
+ } |
+ inputs = [ |
+ _build_config, |
+ _desugar_input_jar, |
+ ] |
+ outputs = [ |
+ _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(_desugar_input_jar, root_build_dir), |
+ "--output-jar", |
+ 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", |
+ rebase_path(_android_sdk_ijar, root_build_dir), |
+ ] |
+ } |
+ |
+ _deps = [] |
+ _deps = [ ":$_desugar_target" ] |
+ _previous_output_jar = _desugar_output_jar |
+ } |
+ |
_output_jar_target = "${target_name}__copy" |
copy(_output_jar_target) { |
deps = _deps |
@@ -2048,8 +2101,8 @@ if (enable_java_templates) { |
forward_variables_from(invoker, |
[ |
"jar_excluded_patterns", |
- "strip_resource_classes", |
"process_java8", |
+ "strip_resource_classes", |
]) |
visibility = [ |
@@ -2341,7 +2394,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 |