#!/bin/bash -ex # Non exhaustive list of modules where we want prebuilts. More can be added as # needed. MAINLINE_MODULES=( com.android.art.debug com.android.art.release com.android.art.testing com.android.conscrypt com.android.runtime com.android.tzdata com.android.i18n ) # List of SDKs and module exports we know of. MODULES_SDK_AND_EXPORTS=( art-module-sdk art-module-test-exports conscrypt-module-sdk conscrypt-module-test-exports ) # We want to create apex modules for all supported architectures. PRODUCTS=( aosp_arm aosp_arm64 aosp_x86 aosp_x86_64 ) if [ ! -e "build/make/core/Makefile" ]; then echo "$0 must be run from the top of the tree" exit 1 fi 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 build/soong/soong_ui.bash --make-mode $@ \ TARGET_PRODUCT=${product} \ ${MAINLINE_MODULES[@]} 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 cp ${PWD}/${PRODUCT_OUT}/system/apex/${module}.apex ${DIST_DIR}/${TARGET_ARCH}/ done done # Create multi-archs SDKs in a different out directory. The multi-arch script # uses soong directly and therefore needs its own directory that doesn't clash # with make. export OUT_DIR=${OUT_DIR}/aml/ for sdk in "${MODULES_SDK_AND_EXPORTS[@]}"; do build/soong/scripts/build-aml-prebuilts.sh ${sdk} done rm -rf ${DIST_DIR}/mainline-sdks cp -R ${OUT_DIR}/soong/mainline-sdks ${DIST_DIR}