blob: 79e40dd4775edcaf74fd5e9fccc846c40b128240 [file] [log] [blame]
Nicolas Geoffray90bc3cd2020-02-28 09:04:25 +00001#!/bin/bash -ex
2
3# Non exhaustive list of modules where we want prebuilts. More can be added as
4# needed.
5MAINLINE_MODULES=(
6 com.android.art.debug
7 com.android.art.release
8 com.android.art.testing
9 com.android.conscrypt
10 com.android.runtime
11 com.android.tzdata
12 com.android.i18n
13)
14
15# List of SDKs and module exports we know of.
16MODULES_SDK_AND_EXPORTS=(
17 art-module-sdk
18 art-module-test-exports
19 conscrypt-module-sdk
20 conscrypt-module-test-exports
21)
22
23# We want to create apex modules for all supported architectures.
24PRODUCTS=(
25 aosp_arm
26 aosp_arm64
27 aosp_x86
28 aosp_x86_64
29)
30
31if [ ! -e "build/make/core/Makefile" ]; then
32 echo "$0 must be run from the top of the tree"
33 exit 1
34fi
35
36OUT_DIR=$(source build/envsetup.sh > /dev/null; TARGET_PRODUCT= get_build_var OUT_DIR)
37DIST_DIR=$(source build/envsetup.sh > /dev/null; TARGET_PRODUCT= get_build_var DIST_DIR)
38
39for product in "${PRODUCTS[@]}"; do
40 build/soong/soong_ui.bash --make-mode $@ \
41 TARGET_PRODUCT=${product} \
42 ${MAINLINE_MODULES[@]}
43
44 PRODUCT_OUT=$(source build/envsetup.sh > /dev/null; TARGET_PRODUCT=${product} get_build_var PRODUCT_OUT)
45 TARGET_ARCH=$(source build/envsetup.sh > /dev/null; TARGET_PRODUCT=${product} get_build_var TARGET_ARCH)
46 rm -rf ${DIST_DIR}/${TARGET_ARCH}/
47 mkdir -p ${DIST_DIR}/${TARGET_ARCH}/
48 for module in "${MAINLINE_MODULES[@]}"; do
49 cp ${PWD}/${PRODUCT_OUT}/system/apex/${module}.apex ${DIST_DIR}/${TARGET_ARCH}/
50 done
51done
52
53
54# Create multi-archs SDKs in a different out directory. The multi-arch script
55# uses soong directly and therefore needs its own directory that doesn't clash
56# with make.
57export OUT_DIR=${OUT_DIR}/aml/
58for sdk in "${MODULES_SDK_AND_EXPORTS[@]}"; do
59 build/soong/scripts/build-aml-prebuilts.sh ${sdk}
60done
61
62rm -rf ${DIST_DIR}/mainline-sdks
63cp -R ${OUT_DIR}/soong/mainline-sdks ${DIST_DIR}