Skip to content

Commit

Permalink
Android: Use d8 to desugar for is_java_debug
Browse files Browse the repository at this point in the history
Still need to work through some size regressions before enabling in
release.

Bug: 1032609
Change-Id: I842052f81642f1e99371102a3d3b9c9876a20148
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2133880
Commit-Queue: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Sam Maier <smaier@chromium.org>
Cr-Commit-Position: refs/heads/master@{#756139}
  • Loading branch information
agrieve authored and Commit Bot committed Apr 3, 2020
1 parent c118479 commit cef984f
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 23 deletions.
5 changes: 4 additions & 1 deletion build/config/android/config.gni
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ if (is_android || is_chromeos) {
}
}

# Our build rules support only KitKat+.
default_min_sdk_version = 19

if (!defined(default_android_ndk_root)) {
default_android_ndk_root = "//third_party/android_ndk"
default_android_ndk_version = "r20"
Expand Down Expand Up @@ -232,7 +235,7 @@ if (is_android || is_chromeos) {
java_warnings_as_errors = !is_java_debug

# Desugar with D8 rather than Desugar tool.
desugar_with_d8 = false
desugar_with_d8 = is_java_debug
}

# Path to where selected build variables are written to.
Expand Down
33 changes: 15 additions & 18 deletions build/config/android/internal_rules.gni
Original file line number Diff line number Diff line change
Expand Up @@ -858,7 +858,7 @@ if (enable_java_templates) {
lint_suppressions_file = "//build/android/lint/suppressions.xml"
}

_min_sdk_version = 19
_min_sdk_version = default_min_sdk_version
if (defined(invoker.min_sdk_version)) {
_min_sdk_version = invoker.min_sdk_version
}
Expand Down Expand Up @@ -1146,22 +1146,31 @@ if (enable_java_templates) {
# disable_incremental: Disable incremental dexing.
template("dex") {
assert(defined(invoker.output))
_min_sdk_version = default_min_sdk_version
if (defined(invoker.min_sdk_version)) {
_min_sdk_version = invoker.min_sdk_version
}

_proguard_enabled =
defined(invoker.proguard_enabled) && invoker.proguard_enabled
_proguarding_with_r8 =
_proguard_enabled && !defined(invoker.proguard_jar_path)
_enable_multidex =
!defined(invoker.enable_multidex) || invoker.enable_multidex
_enable_main_dex_list =
_enable_multidex &&
(!defined(invoker.min_sdk_version) || invoker.min_sdk_version < 21)
_enable_main_dex_list = _enable_multidex && _min_sdk_version < 21
if (!_enable_main_dex_list) {
if (defined(invoker.negative_main_dex_globs)) {
not_needed(invoker, [ "negative_main_dex_globs" ])
}
}

# When using d8 to desugar, the dex merge step must not be set to a higher
# minSdkVersion than the libraries in order for the proper backported
# methods to be included.
if (invoker.enable_desugar && defined(invoker.input_dex_filearg)) {
_min_sdk_version = default_min_sdk_version
}

assert(!_proguard_enabled || !(defined(invoker.input_dex_filearg) ||
defined(invoker.input_classes_filearg) ||
defined(invoker.input_class_jars)),
Expand Down Expand Up @@ -1214,6 +1223,7 @@ if (enable_java_templates) {
args = [
"--proguard-configs=@FileArg($_rebased_build_config:deps_info:proguard_all_configs)",
"--input-paths=@FileArg($_rebased_build_config:deps_info:java_runtime_classpath)",
"--min-api=$_min_sdk_version",
]
if (defined(invoker.proguard_args)) {
args += invoker.proguard_args
Expand All @@ -1232,13 +1242,6 @@ if (enable_java_templates) {
args += [ "--apply-mapping=$_rebased_apply_mapping_path" ]
}

if (defined(invoker.min_sdk_version)) {
args += [
"--min-api",
"${invoker.min_sdk_version}",
]
}

if (_proguarding_with_r8 && _enable_main_dex_list) {
if (defined(invoker.extra_main_dex_proguard_config)) {
args += [
Expand Down Expand Up @@ -1368,6 +1371,7 @@ if (enable_java_templates) {
rebase_path(depfile, root_build_dir),
"--output",
rebase_path(outputs[0], root_build_dir),
"--min-api=$_min_sdk_version",
]

if (_proguard_enabled) {
Expand Down Expand Up @@ -1441,13 +1445,6 @@ if (enable_java_templates) {
args += [ "--release" ]
}

if (defined(invoker.min_sdk_version)) {
args += [
"--min-api",
"${invoker.min_sdk_version}",
]
}

if (invoker.enable_desugar) {
args += [
"--desugar",
Expand Down
8 changes: 4 additions & 4 deletions build/config/android/rules.gni
Original file line number Diff line number Diff line change
Expand Up @@ -1363,7 +1363,7 @@ if (enable_java_templates) {
android_manifest = "//build/android/AndroidManifest.xml"
}
arsc_output = _resource_arsc_output
min_sdk_version = 19
min_sdk_version = default_min_sdk_version
target_sdk_version = 23
}

Expand Down Expand Up @@ -1852,7 +1852,7 @@ if (enable_java_templates) {
supports_android = true
requires_android = true
if (!defined(invoker.min_sdk_version)) {
min_sdk_version = 19
min_sdk_version = default_min_sdk_version
}

if (!defined(jar_excluded_patterns)) {
Expand Down Expand Up @@ -2104,7 +2104,7 @@ if (enable_java_templates) {
# static_library_provider target will provide the dex file(s) for this
# target.
# min_sdk_version: The minimum Android SDK version this target supports.
# Optional, default 19.
# Optional, default $default_min_sdk_version.
# target_sdk_version: The target Android SDK version for this target.
# Optional, default 23.
# max_sdk_version: The maximum Android SDK version this target supports.
Expand Down Expand Up @@ -2137,7 +2137,7 @@ if (enable_java_templates) {
_build_config = "$target_gen_dir/$target_name.build_config"
_build_config_target = "$target_name$build_config_target_suffix"

_min_sdk_version = 19
_min_sdk_version = default_min_sdk_version
_target_sdk_version = 23
if (defined(invoker.min_sdk_version)) {
_min_sdk_version = invoker.min_sdk_version
Expand Down

0 comments on commit cef984f

Please sign in to comment.