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