Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2284)

Unified Diff: build/config/android/internal_rules.gni

Issue 2985523002: Update experimental Java 8 support to use Desugar instead of Retrolambda (Closed)
Patch Set: Desugar :) Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« build/android/gyp/desugar.py ('K') | « build/android/gyp/retrolambda.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« build/android/gyp/desugar.py ('K') | « build/android/gyp/retrolambda.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698