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