android13/external/angle/third_party/bazel/desugar
liiir1985 7f62dcda9f initial 2024-06-22 20:45:49 +08:00
..
BUILD.gn initial 2024-06-22 20:45:49 +08:00
Desugar.jar initial 2024-06-22 20:45:49 +08:00
Desugar_runtime.jar initial 2024-06-22 20:45:49 +08:00
README.chromium initial 2024-06-22 20:45:49 +08:00
proguard.flags initial 2024-06-22 20:45:49 +08:00
stateful-lambdas.patch initial 2024-06-22 20:45:49 +08:00

README.chromium

Name: Desugar, transforming Java 8 bytecode to be Java 7 compatible
Short Name: desugar
URL: https://github.com/bazelbuild/bazel
Version: 1.1.0
License: Apache 2.0
Security Critical: no

Description:
Desugar is a Google-developed open-source Java library used by the build process
to transform Java 8 bytecode to Java 7. It is used to enable Java 8 features
such as lambda experssions for Chrome on Android.

Googlers: See: go/desugar

Local Modifications:
* Added BUILD.gn, proguard.flags.
* Made all lambdas be "stateful" to avoid <clinit> bloat.
* Desugar_deploy.jar split into Desugar.jar and Desugar_runtime.jar.
* Desugar.jar has been run through r8.jar to remove unused .class files.

Update instructions (requires @google.com account for uploading):
* Check out Bazel from https://github.com/bazelbuild/bazel
* Compile or install Bazel by following instructions on
    https://docs.bazel.build/versions/master/install.html
* Apply stateful-lambdas.patch:
    git apply $CHROMIUM_SRC/third_party/bazel/desugar/stateful-lambdas.patch
* Build Desugar_deploy.jar:
    bazel build //src/tools/android/java/com/google/devtools/build/android/desugar:Desugar_deploy.jar
* Move Desugar_deploy.jar to location within Chromium:
    rm $CHROMIUM_SRC/third_party/bazel/desugar/Desugar.jar
    mv bazel-bin/src/tools/android/java/com/google/devtools/build/android/desugar/Desugar_deploy.jar $CHROMIUM_SRC/third_party/bazel/desugar/Desugar.jar
* Update Desugar_runtime.jar:
    unzip Desugar.jar "com/google/devtools/build/android/desugar/runtime*"
    zip -rD0 Desugar_runtime.jar com
    rm -r com
* Shrink via r8 (optional - reduces size by about 66%).
    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
    mv Desugar.new.jar Desugar.jar
* Perform a sanity check of chrome_public_apk:
    ninja chrome_public_apk
    bin/chrome_public_apk run
* Update this README.chromium (Version)
* Upload new jar to CIPD:
    cd third_party/bazel
    cipd create --pkg-def cipd.yaml
* Update revision //DEPS