xref: /aosp_15_r20/external/angle/third_party/bazel/desugar/README.chromium (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1Name: Desugar, transforming Java 8 bytecode to be Java 7 compatible
2Short Name: desugar
3URL: https://github.com/bazelbuild/bazel
4Version: 1.1.0
5License: Apache 2.0
6Security Critical: no
7Shipped: yes
8
9Description:
10Desugar is a Google-developed open-source Java library used by the build process
11to transform Java 8 bytecode to Java 7. It is used to enable Java 8 features
12such as lambda experssions for Chrome on Android.
13
14Googlers: See: go/desugar
15
16Local Modifications:
17* Added BUILD.gn, proguard.flags.
18* Made all lambdas be "stateful" to avoid <clinit> bloat.
19* Desugar_deploy.jar split into Desugar.jar and Desugar_runtime.jar.
20* Desugar.jar has been run through r8.jar to remove unused .class files.
21
22Update instructions (requires @google.com account for uploading):
23* Check out Bazel from https://github.com/bazelbuild/bazel
24* Compile or install Bazel by following instructions on
25    https://docs.bazel.build/versions/master/install.html
26* Apply stateful-lambdas.patch:
27    git apply $CHROMIUM_SRC/third_party/bazel/desugar/stateful-lambdas.patch
28* Build Desugar_deploy.jar:
29    bazel build //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar_deploy.jar
30* Move Desugar_deploy.jar to location within Chromium:
31    rm $CHROMIUM_SRC/third_party/bazel/desugar/Desugar.jar
32    mv bazel-bin/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar_deploy.jar $CHROMIUM_SRC/third_party/bazel/desugar/Desugar.jar
33* Update Desugar_runtime.jar:
34    unzip Desugar.jar "com/google/devtools/build/android/desugar/runtime*"
35    zip -rD0 Desugar_runtime.jar com
36    rm -r com
37* Shrink via r8 (optional - reduces size by about 66%).
38    java -jar ../../r8/lib/r8.jar --debug --classfile --output Desugar.new.jar --pg-conf proguard.flags --no-desugaring --lib ../../jdk/extras/java_8/jre/lib/rt.jar Desugar.jar
39    mv Desugar.new.jar Desugar.jar
40* Perform a sanity check of chrome_public_apk:
41    ninja chrome_public_apk
42    bin/chrome_public_apk run
43* Update this README.chromium (Version)
44* Upload new jar to CIPD:
45    cd third_party/bazel
46    cipd create --pkg-def cipd.yaml
47* Update revision //DEPS
48