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