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