Add some java tools to build-tools prebuilts

Add dx, d8, and desugar to build-tools prebuilts so they can
be used by unbundled builds.

Test: prebuilts/build-tools/build-prebuilts.sh
Change-Id: I7a1cb2dcf45d4c0059b1787a75bd872af6f0fec7
diff --git a/build-prebuilts.sh b/build-prebuilts.sh
index ee070b4..0d3cc7e 100755
--- a/build-prebuilts.sh
+++ b/build-prebuilts.sh
@@ -53,13 +53,47 @@
         zip2zip
         ziptime
     )
-    SOONG_ASAN_BINARIES=( acp ckati makeparallel ninja ziptime )
-    build/soong/soong_ui.bash --make-mode --skip-make ${SOONG_BINARIES[@]/#/${SOONG_HOST_OUT}/bin/} ${SOONG_HOST_OUT}/nativetest64/ninja_test/ninja_test
+    SOONG_ASAN_BINARIES=(
+        acp
+        ckati
+        makeparallel
+        ninja
+        ziptime
+    )
+    SOONG_JAVA_LIBRARIES=(
+        desugar
+        dx
+        d8
+    )
+    SOONG_JAVA_WRAPPERS=(
+        dx
+        d8
+    )
+
+    binaries=$(for i in "${SOONG_BINARIES[@]}"; do echo ${SOONG_HOST_OUT}/bin/${i}; done)
+    jars=$(for i in "${SOONG_JAVA_LIBRARIES[@]}"; do echo ${SOONG_HOST_OUT}/framework/${i}.jar; done)
+    wrappers=$(for i in "${SOONG_JAVA_WRAPPERS[@]}"; do echo ${SOONG_HOST_OUT}/bin/${i}; done)
+
+    # Build everything
+    build/soong/soong_ui.bash --make-mode --skip-make \
+        ${binaries} \
+        ${wrappers} \
+        ${jars} \
+        ${SOONG_HOST_OUT}/nativetest64/ninja_test/ninja_test
+
+    # Run ninja tests
     ${SOONG_HOST_OUT}/nativetest64/ninja_test/ninja_test
+
+    # Copy arch-specific binaries
     mkdir -p ${SOONG_OUT}/dist/bin
-    cp ${SOONG_BINARIES[@]/#/${SOONG_HOST_OUT}/bin/} ${SOONG_OUT}/dist/bin/
+    cp ${binaries} ${SOONG_OUT}/dist/bin/
     cp -R ${SOONG_HOST_OUT}/lib* ${SOONG_OUT}/dist/
 
+    # Copy jars and wrappers
+    mkdir -p ${SOONG_OUT}/dist-common/bin ${SOONG_OUT}/dist-common/framework
+    cp ${wrappers} ${SOONG_OUT}/dist-common/bin
+    cp ${jars} ${SOONG_OUT}/dist-common/framework
+
     if [[ $OS == "linux" ]]; then
         # Build ASAN versions
         export ASAN_OPTIONS=detect_leaks=0
@@ -71,18 +105,35 @@
     "SanitizeHost": ["address"]
 }
 EOF
+
+        # Clean up non-ASAN installed versions
         rm -rf ${SOONG_HOST_OUT}
-        build/soong/soong_ui.bash --make-mode --skip-make ${SOONG_ASAN_BINARIES[@]/#/${SOONG_HOST_OUT}/bin/} ${SOONG_HOST_OUT}/nativetest64/ninja_test/ninja_test
+
+        # Build everything with ASAN
+        build/soong/soong_ui.bash --make-mode --skip-make \
+            ${binaries} \
+            ${SOONG_HOST_OUT}/nativetest64/ninja_test/ninja_test
+
+        # Run ninja tests
         ${SOONG_HOST_OUT}/nativetest64/ninja_test/ninja_test
+
+        # Copy arch-specific binaries
         mkdir -p ${SOONG_OUT}/dist/asan/bin
-        cp ${SOONG_ASAN_BINARIES[@]/#/${SOONG_HOST_OUT}/bin/} ${SOONG_OUT}/dist/asan/bin/
+        cp ${binaries} ${SOONG_OUT}/dist/asan/bin/
         cp -R ${SOONG_HOST_OUT}/lib* ${SOONG_OUT}/dist/asan/
     fi
 
+    # Package arch-specific prebuilts
     (
         cd ${SOONG_OUT}/dist
         zip -qryX build-prebuilts.zip *
     )
+
+    # Package common prebuilts
+    (
+        cd ${SOONG_OUT}/dist-common
+        zip -qryX build-common-prebuilts.zip *
+    )
 fi
 
 # Go
@@ -111,6 +162,7 @@
 
     if [ -n ${build_soong} ]; then
         cp ${SOONG_OUT}/dist/build-prebuilts.zip ${DIST_DIR}/
+        cp ${SOONG_OUT}/dist-common/build-common-prebuilts.zip ${DIST_DIR}/
         cp ${SOONG_OUT}/.bootstrap/docs/soong_build.html ${DIST_DIR}/
     fi
     if [ -n ${build_go} ]; then