Chromium Code Reviews| 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 |