• Home
Name Date Size #Lines LOC

..--

BUILD.gnD03-May-2024366 129

README.chromiumD03-May-20242.1 KiB4742

proguard.flagsD03-May-2024267 1310

stateful-lambdas.patchD03-May-20243.4 KiB6563

README.chromium

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