2020-05-07 05:03:26 +08:00
|
|
|
#!/bin/bash -e
|
2020-02-28 17:04:25 +08:00
|
|
|
|
|
|
|
# Non exhaustive list of modules where we want prebuilts. More can be added as
|
|
|
|
# needed.
|
|
|
|
MAINLINE_MODULES=(
|
2020-10-12 22:10:36 +08:00
|
|
|
com.android.art
|
2020-02-28 17:04:25 +08:00
|
|
|
com.android.art.debug
|
|
|
|
com.android.art.testing
|
|
|
|
com.android.conscrypt
|
2020-10-12 22:10:36 +08:00
|
|
|
com.android.i18n
|
2021-02-18 05:00:41 +08:00
|
|
|
com.android.os.statsd
|
2020-02-28 17:04:25 +08:00
|
|
|
com.android.runtime
|
|
|
|
com.android.tzdata
|
|
|
|
)
|
|
|
|
|
|
|
|
# List of SDKs and module exports we know of.
|
|
|
|
MODULES_SDK_AND_EXPORTS=(
|
|
|
|
art-module-sdk
|
|
|
|
art-module-test-exports
|
2020-11-11 20:49:03 +08:00
|
|
|
conscrypt-module-host-exports
|
2020-02-28 17:04:25 +08:00
|
|
|
conscrypt-module-sdk
|
|
|
|
conscrypt-module-test-exports
|
2020-11-11 20:49:03 +08:00
|
|
|
i18n-module-host-exports
|
2020-06-18 22:33:18 +08:00
|
|
|
i18n-module-sdk
|
2020-11-11 20:49:03 +08:00
|
|
|
i18n-module-test-exports
|
2020-06-26 21:44:32 +08:00
|
|
|
platform-mainline-sdk
|
2020-08-05 22:56:09 +08:00
|
|
|
platform-mainline-test-exports
|
2020-11-11 20:49:03 +08:00
|
|
|
runtime-module-host-exports
|
|
|
|
runtime-module-sdk
|
2021-02-11 10:06:32 +08:00
|
|
|
statsd-module-sdk
|
2021-02-20 09:19:30 +08:00
|
|
|
statsd-module-sdk-for-art
|
2021-01-11 17:45:57 +08:00
|
|
|
tzdata-module-test-exports
|
2020-06-26 21:44:32 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
# List of libraries installed on the platform that are needed for ART chroot
|
|
|
|
# testing.
|
|
|
|
PLATFORM_LIBRARIES=(
|
2021-03-10 01:13:51 +08:00
|
|
|
heapprofd_client_api
|
2020-06-26 21:44:32 +08:00
|
|
|
libartpalette-system
|
2021-03-10 01:13:51 +08:00
|
|
|
liblog
|
2020-02-28 17:04:25 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
# We want to create apex modules for all supported architectures.
|
|
|
|
PRODUCTS=(
|
2020-05-07 05:03:26 +08:00
|
|
|
aosp_arm
|
|
|
|
aosp_arm64
|
|
|
|
aosp_x86
|
|
|
|
aosp_x86_64
|
2020-02-28 17:04:25 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
if [ ! -e "build/make/core/Makefile" ]; then
|
2020-05-07 05:03:26 +08:00
|
|
|
echo "$0 must be run from the top of the tree"
|
|
|
|
exit 1
|
2020-02-28 17:04:25 +08:00
|
|
|
fi
|
|
|
|
|
2020-05-07 05:03:26 +08:00
|
|
|
echo_and_run() {
|
|
|
|
echo "$*"
|
|
|
|
"$@"
|
|
|
|
}
|
|
|
|
|
2020-07-31 22:36:39 +08:00
|
|
|
lib_dir() {
|
|
|
|
case $1 in
|
|
|
|
(aosp_arm|aosp_x86) echo "lib";;
|
|
|
|
(aosp_arm64|aosp_x86_64) echo "lib64";;
|
|
|
|
esac
|
|
|
|
}
|
|
|
|
|
2021-02-03 00:20:45 +08:00
|
|
|
# Make sure this build builds from source, regardless of the default.
|
|
|
|
export SOONG_CONFIG_art_module_source_build=true
|
|
|
|
|
2021-06-02 22:23:37 +08:00
|
|
|
# This script does not intend to handle compressed APEX
|
|
|
|
export OVERRIDE_PRODUCT_COMPRESSED_APEX=false
|
|
|
|
|
2020-02-28 17:04:25 +08:00
|
|
|
OUT_DIR=$(source build/envsetup.sh > /dev/null; TARGET_PRODUCT= get_build_var OUT_DIR)
|
|
|
|
DIST_DIR=$(source build/envsetup.sh > /dev/null; TARGET_PRODUCT= get_build_var DIST_DIR)
|
|
|
|
|
|
|
|
for product in "${PRODUCTS[@]}"; do
|
2020-05-07 05:03:26 +08:00
|
|
|
echo_and_run build/soong/soong_ui.bash --make-mode $@ \
|
|
|
|
TARGET_PRODUCT=${product} \
|
2020-06-26 21:44:32 +08:00
|
|
|
${MAINLINE_MODULES[@]} \
|
|
|
|
${PLATFORM_LIBRARIES[@]}
|
2020-02-28 17:04:25 +08:00
|
|
|
|
2020-05-07 05:03:26 +08:00
|
|
|
PRODUCT_OUT=$(source build/envsetup.sh > /dev/null; TARGET_PRODUCT=${product} get_build_var PRODUCT_OUT)
|
|
|
|
TARGET_ARCH=$(source build/envsetup.sh > /dev/null; TARGET_PRODUCT=${product} get_build_var TARGET_ARCH)
|
|
|
|
rm -rf ${DIST_DIR}/${TARGET_ARCH}/
|
|
|
|
mkdir -p ${DIST_DIR}/${TARGET_ARCH}/
|
|
|
|
for module in "${MAINLINE_MODULES[@]}"; do
|
|
|
|
echo_and_run cp ${PWD}/${PRODUCT_OUT}/system/apex/${module}.apex ${DIST_DIR}/${TARGET_ARCH}/
|
|
|
|
done
|
2020-06-26 21:44:32 +08:00
|
|
|
for library in "${PLATFORM_LIBRARIES[@]}"; do
|
2020-07-31 22:36:39 +08:00
|
|
|
libdir=$(lib_dir $product)
|
|
|
|
echo_and_run cp ${PWD}/${PRODUCT_OUT}/system/${libdir}/${library}.so ${DIST_DIR}/${TARGET_ARCH}/
|
2020-06-26 21:44:32 +08:00
|
|
|
done
|
2020-02-28 17:04:25 +08:00
|
|
|
done
|
|
|
|
|
2021-06-08 06:18:56 +08:00
|
|
|
# We use force building LLVM components flag (even though we actually don't
|
|
|
|
# compile them) because we don't have bionic host prebuilts
|
|
|
|
# for them.
|
|
|
|
export FORCE_BUILD_LLVM_COMPONENTS=true
|
|
|
|
|
2020-02-28 17:04:25 +08:00
|
|
|
# Create multi-archs SDKs in a different out directory. The multi-arch script
|
2021-01-29 23:14:42 +08:00
|
|
|
# uses Soong in --skip-make mode which cannot use the same directory as normal
|
2020-05-07 05:03:26 +08:00
|
|
|
# mode with make.
|
|
|
|
export OUT_DIR=${OUT_DIR}/aml
|
2021-06-08 06:18:56 +08:00
|
|
|
echo_and_run build/soong/scripts/build-aml-prebuilts.sh \
|
|
|
|
TARGET_PRODUCT=mainline_sdk ${MODULES_SDK_AND_EXPORTS[@]}
|
2020-02-28 17:04:25 +08:00
|
|
|
|
|
|
|
rm -rf ${DIST_DIR}/mainline-sdks
|
2020-05-07 05:03:26 +08:00
|
|
|
echo_and_run cp -R ${OUT_DIR}/soong/mainline-sdks ${DIST_DIR}
|