Commit b1d7c6a8 authored by Justin DeWitt's avatar Justin DeWitt Committed by Commit Bot

Enable desugar config.

This allows desugaring to work by including required classes in the desugar run.

Change-Id: I11828b8ff4edb0312a0c07821a2c9d5e853925a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2357914
Commit-Queue: Justin DeWitt <dewittj@chromium.org>
Reviewed-by: default avatarAndrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#798996}
parent 3909827a
...@@ -2899,7 +2899,7 @@ deps = { ...@@ -2899,7 +2899,7 @@ deps = {
'packages': [ 'packages': [
{ {
'package': 'chromium/third_party/android_deps/libs/com_android_tools_desugar_jdk_libs', 'package': 'chromium/third_party/android_deps/libs/com_android_tools_desugar_jdk_libs',
'version': 'version:1.0.5-cr0', 'version': 'version:1.0.10-cr0',
}, },
], ],
'condition': 'checkout_android', 'condition': 'checkout_android',
...@@ -2910,7 +2910,7 @@ deps = { ...@@ -2910,7 +2910,7 @@ deps = {
'packages': [ 'packages': [
{ {
'package': 'chromium/third_party/android_deps/libs/com_android_tools_desugar_jdk_libs_configuration', 'package': 'chromium/third_party/android_deps/libs/com_android_tools_desugar_jdk_libs_configuration',
'version': 'version:0.11.1-cr0', 'version': 'version:1.0.10-cr0',
}, },
], ],
'condition': 'checkout_android', 'condition': 'checkout_android',
......
...@@ -24,6 +24,8 @@ def _ParseArgs(args): ...@@ -24,6 +24,8 @@ def _ParseArgs(args):
'--desugar-jdk-libs-json', help='Path to desugar_jdk_libs.json.') '--desugar-jdk-libs-json', help='Path to desugar_jdk_libs.json.')
parser.add_argument( parser.add_argument(
'--desugar-jdk-libs-jar', help='Path to desugar_jdk_libs.jar.') '--desugar-jdk-libs-jar', help='Path to desugar_jdk_libs.jar.')
parser.add_argument('--desugar-jdk-libs-configuration-jar',
help='Path to desugar_jdk_libs_configuration.jar.')
parser.add_argument('--min-api', help='minSdkVersion', required=True) parser.add_argument('--min-api', help='minSdkVersion', required=True)
parser.add_argument('--warnings-as-errors', parser.add_argument('--warnings-as-errors',
action='store_true', action='store_true',
...@@ -33,7 +35,8 @@ def _ParseArgs(args): ...@@ -33,7 +35,8 @@ def _ParseArgs(args):
def DexJdkLibJar(r8_path, min_api, desugar_jdk_libs_json, desugar_jdk_libs_jar, def DexJdkLibJar(r8_path, min_api, desugar_jdk_libs_json, desugar_jdk_libs_jar,
keep_rule_file, output, warnings_as_errors): desugar_jdk_libs_configuration_jar, keep_rule_file, output,
warnings_as_errors):
# TODO(agrieve): Spews a lot of stderr about missing classes. # TODO(agrieve): Spews a lot of stderr about missing classes.
with build_utils.TempDir() as tmp_dir: with build_utils.TempDir() as tmp_dir:
cmd = [ cmd = [
...@@ -53,7 +56,10 @@ def DexJdkLibJar(r8_path, min_api, desugar_jdk_libs_json, desugar_jdk_libs_jar, ...@@ -53,7 +56,10 @@ def DexJdkLibJar(r8_path, min_api, desugar_jdk_libs_json, desugar_jdk_libs_jar,
if keep_rule_file: if keep_rule_file:
cmd += ['--pg-conf', keep_rule_file] cmd += ['--pg-conf', keep_rule_file]
cmd += ['--output', tmp_dir, desugar_jdk_libs_jar] cmd += [
'--output', tmp_dir, desugar_jdk_libs_jar,
desugar_jdk_libs_configuration_jar
]
build_utils.CheckOutput(cmd, build_utils.CheckOutput(cmd,
print_stdout=True, print_stdout=True,
...@@ -72,7 +78,8 @@ def DexJdkLibJar(r8_path, min_api, desugar_jdk_libs_json, desugar_jdk_libs_jar, ...@@ -72,7 +78,8 @@ def DexJdkLibJar(r8_path, min_api, desugar_jdk_libs_json, desugar_jdk_libs_jar,
def main(args): def main(args):
options = _ParseArgs(args) options = _ParseArgs(args)
DexJdkLibJar(options.r8_path, options.min_api, options.desugar_jdk_libs_json, DexJdkLibJar(options.r8_path, options.min_api, options.desugar_jdk_libs_json,
options.desugar_jdk_libs_jar, None, options.output, options.desugar_jdk_libs_jar,
options.desugar_jdk_libs_configuration_jar, None, options.output,
options.warnings_as_errors) options.warnings_as_errors)
......
...@@ -79,6 +79,8 @@ def _ParseOptions(): ...@@ -79,6 +79,8 @@ def _ParseOptions():
help='GN-list of .jar files to optimize.') help='GN-list of .jar files to optimize.')
parser.add_argument('--desugar-jdk-libs-jar', parser.add_argument('--desugar-jdk-libs-jar',
help='Path to desugar_jdk_libs.jar.') help='Path to desugar_jdk_libs.jar.')
parser.add_argument('--desugar-jdk-libs-configuration-jar',
help='Path to desugar_jdk_libs_configuration.jar.')
parser.add_argument('--output-path', help='Path to the generated .jar file.') parser.add_argument('--output-path', help='Path to the generated .jar file.')
parser.add_argument( parser.add_argument(
'--proguard-configs', '--proguard-configs',
...@@ -327,6 +329,7 @@ def _OptimizeWithR8(options, ...@@ -327,6 +329,7 @@ def _OptimizeWithR8(options,
base_has_imported_lib = dex_jdk_libs.DexJdkLibJar( base_has_imported_lib = dex_jdk_libs.DexJdkLibJar(
options.r8_path, options.min_api, options.desugar_jdk_libs_json, options.r8_path, options.min_api, options.desugar_jdk_libs_json,
options.desugar_jdk_libs_jar, options.desugar_jdk_libs_jar,
options.desugar_jdk_libs_configuration_jar,
options.desugared_library_keep_rule_output, jdk_dex_output, options.desugared_library_keep_rule_output, jdk_dex_output,
options.warnings_as_errors) options.warnings_as_errors)
......
...@@ -79,7 +79,8 @@ _java_target_patterns = _java_library_patterns + _java_resource_patterns ...@@ -79,7 +79,8 @@ _java_target_patterns = _java_library_patterns + _java_resource_patterns
_r8_path = "//third_party/r8/lib/r8.jar" _r8_path = "//third_party/r8/lib/r8.jar"
_desugar_jdk_libs_json = "//third_party/r8/desugar_jdk_libs.json" _desugar_jdk_libs_json = "//third_party/r8/desugar_jdk_libs.json"
_desugar_jdk_libs_jar = "//third_party/android_deps/libs/com_android_tools_desugar_jdk_libs/desugar_jdk_libs-1.0.5.jar" _desugar_jdk_libs_jar = "//third_party/android_deps/libs/com_android_tools_desugar_jdk_libs/desugar_jdk_libs-1.0.10.jar"
_desugar_jdk_libs_configuration_jar = "//third_party/android_deps/libs/com_android_tools_desugar_jdk_libs_configuration/desugar_jdk_libs_configuration-1.0.10.jar"
_desugar_runtime_jar = "$root_build_dir/obj/third_party/bazel/desugar/Desugar_runtime.processed.jar" _desugar_runtime_jar = "$root_build_dir/obj/third_party/bazel/desugar/Desugar_runtime.processed.jar"
# Where to write failed expectations for bots to read. # Where to write failed expectations for bots to read.
...@@ -1227,8 +1228,13 @@ if (enable_java_templates) { ...@@ -1227,8 +1228,13 @@ if (enable_java_templates) {
_args += [ _args += [
"--desugar-jdk-libs-jar", "--desugar-jdk-libs-jar",
rebase_path(_desugar_jdk_libs_jar, root_build_dir), rebase_path(_desugar_jdk_libs_jar, root_build_dir),
"--desugar-jdk-libs-configuration-jar",
rebase_path(_desugar_jdk_libs_configuration_jar, root_build_dir),
]
_inputs += [
_desugar_jdk_libs_jar,
_desugar_jdk_libs_configuration_jar,
] ]
_inputs += [ _desugar_jdk_libs_jar ]
_desugared_library_keep_rule_output_path = _desugared_library_keep_rule_output_path =
"$target_gen_dir/$target_name.desugared_library_keep_rules.flags" "$target_gen_dir/$target_name.desugared_library_keep_rules.flags"
...@@ -1734,6 +1740,7 @@ if (enable_java_templates) { ...@@ -1734,6 +1740,7 @@ if (enable_java_templates) {
_r8_path, _r8_path,
_desugar_jdk_libs_json, _desugar_jdk_libs_json,
_desugar_jdk_libs_jar, _desugar_jdk_libs_jar,
_desugar_jdk_libs_configuration_jar,
] ]
outputs = [ invoker.output ] outputs = [ invoker.output ]
args = [ args = [
...@@ -1743,6 +1750,8 @@ if (enable_java_templates) { ...@@ -1743,6 +1750,8 @@ if (enable_java_templates) {
rebase_path(_desugar_jdk_libs_json, root_build_dir), rebase_path(_desugar_jdk_libs_json, root_build_dir),
"--desugar-jdk-libs-jar", "--desugar-jdk-libs-jar",
rebase_path(_desugar_jdk_libs_jar, root_build_dir), rebase_path(_desugar_jdk_libs_jar, root_build_dir),
"--desugar-jdk-libs-configuration-jar",
rebase_path(_desugar_jdk_libs_configuration_jar, root_build_dir),
"--output", "--output",
rebase_path(invoker.output, root_build_dir), rebase_path(invoker.output, root_build_dir),
"--min-api=${invoker.min_sdk_version}", "--min-api=${invoker.min_sdk_version}",
......
...@@ -1129,7 +1129,7 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") { ...@@ -1129,7 +1129,7 @@ java_prebuilt("com_android_tools_build_jetifier_jetifier_processor_java") {
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_android_tools_desugar_jdk_libs_configuration_java") { java_prebuilt("com_android_tools_desugar_jdk_libs_configuration_java") {
jar_path = "libs/com_android_tools_desugar_jdk_libs_configuration/desugar_jdk_libs_configuration-0.11.1.jar" jar_path = "libs/com_android_tools_desugar_jdk_libs_configuration/desugar_jdk_libs_configuration-1.0.10.jar"
output_name = "com_android_tools_desugar_jdk_libs_configuration" output_name = "com_android_tools_desugar_jdk_libs_configuration"
supports_android = true supports_android = true
enable_bytecode_checks = false enable_bytecode_checks = false
......
...@@ -163,8 +163,12 @@ dependencies { ...@@ -163,8 +163,12 @@ dependencies {
compile "javax.inject:javax.inject:1" compile "javax.inject:javax.inject:1"
// Used by R8 to desugar library functions. // Used by R8 to desugar library functions.
compile "com.android.tools:desugar_jdk_libs:1.0.5" compile "com.android.tools:desugar_jdk_libs:1.0.10"
compile "com.android.tools:desugar_jdk_libs_configuration:0.11.1" // When updating this line, please run the following to update the
// desugar.json file:
// $ unzip -p third_party/android_deps/libs/desugar_jdk_libs_configuration/desugar_jdk_libs_configuration_$VERSION.jar \
// META-INF/desugar/d8/desugar.json > third_party/r8/desugar_jdk_libs.json
compile "com.android.tools:desugar_jdk_libs_configuration:1.0.10"
// buildCompile targets have supports_android = false. // buildCompile targets have supports_android = false.
buildCompile "com.google.guava:guava:27.0.1-jre" buildCompile "com.google.guava:guava:27.0.1-jre"
......
Name: Small subset of OpenJDK libraries Name: Small subset of OpenJDK libraries
Short Name: desugar_jdk_libs Short Name: desugar_jdk_libs
URL: https://github.com/google/desugar_jdk_libs URL: https://github.com/google/desugar_jdk_libs
Version: 1.0.5 Version: 1.0.10
License: GNU General Public License, version 2, with the Classpath Exception License: GNU General Public License, version 2, with the Classpath Exception
License File: LICENSE License File: LICENSE
Security Critical: yes Security Critical: yes
......
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
# found in the LICENSE file. # found in the LICENSE file.
# To create CIPD package run the following command. # To create CIPD package run the following command.
# cipd create --pkg-def cipd.yaml -tag version:1.0.5-cr0 # cipd create --pkg-def cipd.yaml -tag version:1.0.10-cr0
package: chromium/third_party/android_deps/libs/com_android_tools_desugar_jdk_libs package: chromium/third_party/android_deps/libs/com_android_tools_desugar_jdk_libs
description: "Small subset of OpenJDK libraries" description: "Small subset of OpenJDK libraries"
data: data:
- file: desugar_jdk_libs-1.0.5.jar - file: desugar_jdk_libs-1.0.10.jar
Name: D8 configuration to desugar desugar_jdk_libs Name: D8 configuration to desugar desugar_jdk_libs
Short Name: desugar_jdk_libs_configuration Short Name: desugar_jdk_libs_configuration
URL: http://r8.googlesource.com/r8 URL: http://r8.googlesource.com/r8
Version: 0.11.1 Version: 1.0.10
License: BSD 3-Clause License: BSD 3-Clause
License File: LICENSE License File: LICENSE
Security Critical: yes Security Critical: yes
......
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
# found in the LICENSE file. # found in the LICENSE file.
# To create CIPD package run the following command. # To create CIPD package run the following command.
# cipd create --pkg-def cipd.yaml -tag version:0.11.1-cr0 # cipd create --pkg-def cipd.yaml -tag version:1.0.10-cr0
package: chromium/third_party/android_deps/libs/com_android_tools_desugar_jdk_libs_configuration package: chromium/third_party/android_deps/libs/com_android_tools_desugar_jdk_libs_configuration
description: "D8 configuration to desugar desugar_jdk_libs" description: "D8 configuration to desugar desugar_jdk_libs"
data: data:
- file: desugar_jdk_libs_configuration-0.11.1.jar - file: desugar_jdk_libs_configuration-1.0.10.jar
...@@ -11,9 +11,10 @@ lib/r8.jar ...@@ -11,9 +11,10 @@ lib/r8.jar
- Contains R8 (proguard replacement) as well as D8 (dexer). - Contains R8 (proguard replacement) as well as D8 (dexer).
desugar_jdk_libs.json desugar_jdk_libs.json
- Configuration for Java library desugaring. - Configuration for Java library desugaring.
- Taken from fa020a2164ea087c1d79c8c6b0f435f199f8d196 - Taken from
- This file should be kept in sync with the prebuilt shims that live //third_party/android_deps/libs/com_android_tools_desugar_jdk_libs_configuration/
at //third_party/android_deps/libs/com_android_tools_desugar_jdk_libs. inside the jar file, in META-INF/desugar/d8/desugar.json. License is also BSD
3-Clause (the r8 version).
R8 is a proguard-like optimizer that also has the ability to dex. R8 is a proguard-like optimizer that also has the ability to dex.
...@@ -40,9 +41,6 @@ cp r8.jar $CHROMIUM_SRC/third_party/r8/lib/r8.jar ...@@ -40,9 +41,6 @@ cp r8.jar $CHROMIUM_SRC/third_party/r8/lib/r8.jar
# different amount of patches: # different amount of patches:
git format-patch -3 -o $CHROMIUM_SRC/third_party/r8/patches git format-patch -3 -o $CHROMIUM_SRC/third_party/r8/patches
# Copy over desugar config:
cp src/library_desugar/desugar_jdk_libs.json $CHROMIUM_SRC/third_party/r8
# Upload to CIPD: # Upload to CIPD:
cd $CHROMIUM_SRC/third_party/r8 cd $CHROMIUM_SRC/third_party/r8
cipd create --pkg-def cipd.yaml # Make note of the instance ID cipd create --pkg-def cipd.yaml # Make note of the instance ID
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment