angle/third_party/bazel/desugar
Jamie Madill 2f808349bd Add standalone Android build.
Includes necessary DEPS and GN build changes.
Some folders are copied directly from Chromium because they don't
exist as source mirrors or aren't available for other reasons.

Bug: angleproject:2344
Change-Id: Ibb7f8a3e2288048b7aed2b0e277ca63b5a932c57
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2826480
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2021-04-20 15:24:42 +00:00
..
BUILD.gn Add standalone Android build. 2021-04-20 15:24:42 +00:00
README.chromium Add standalone Android build. 2021-04-20 15:24:42 +00:00
proguard.flags Add standalone Android build. 2021-04-20 15:24:42 +00:00
stateful-lambdas.patch Add standalone Android build. 2021-04-20 15:24:42 +00: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