88 lines
3.4 KiB
Bash
Executable File
88 lines
3.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
source ./env
|
|
|
|
# Force license terms.
|
|
if [[ "$ANDROID_AGREE_LICENSE_TERMS" != y ]]; then
|
|
echo "You didn't agree to the Android SDK license terms! Read them and then set ANDROID_AGREE_LICENSE_TERMS=y in env."
|
|
exit 1
|
|
fi
|
|
|
|
# Install the SDK manager.
|
|
if [[ ! -d "$BASE/sdk/android-sdk-r${SDK_REV}" ]]; then
|
|
case $(uname -s) in
|
|
Darwin)
|
|
[[ ! -f "$BASE/sdk/android-sdk-r${SDK_REV}.zip" ]] && (wget http://dl.google.com/android/android-sdk_r${SDK_REV}-macosx.zip -O "$BASE/sdk/android-sdk-r${SDK_REV}.zip" || exit 1)
|
|
unzip -q "$BASE/sdk/android-sdk-r${SDK_REV}.zip" -d "$BASE/sdk" || exit 1
|
|
mv "$BASE/sdk/android-sdk-macosx" "$BASE/sdk/android-sdk-r${SDK_REV}" || exit 1
|
|
;;
|
|
Linux)
|
|
[[ ! -f "$BASE/sdk/android-sdk-r4{SDK_REV}.zip" ]] && (wget http://dl.google.com/android/android-sdk_r${SDK_REV}-linux.tgz -O "$BASE/sdk/android-sdk-r${SDK_REV}.tgz" || exit 1)
|
|
tar -xf "$BASE/sdk/android-sdk-r${SDK_REV}.tgz" -C "$BASE/sdk" || exit 1
|
|
mv "$BASE/sdk/android-sdk-linux" "$BASE/sdk/android-sdk-r${SDK_REV}" || exit 1
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
pushd "$BASE/sdk/android-sdk-r${SDK_REV}" > /dev/null
|
|
|
|
# Find SDK platform ID to use.
|
|
SDK_ID=$(./tools/android -s list sdk -a |\
|
|
grep -F 'SDK Platform Android' |\
|
|
grep -Fm1 "API ${ANDROID_API_LEVEL}" |\
|
|
awk '{print $1}' | tr -d '-')
|
|
if [[ -z "${SDK_ID}" ]]; then
|
|
echo "Could not find SDK package for API level ${ANDROID_API_LEVEL}, make sure it's available using:"
|
|
echo " $BASE/sdk/android-sdk-r${SDK_REV}/tools/android list sdk"
|
|
echo "and check if it's in there."
|
|
exit 1
|
|
fi
|
|
# Install base SDKs.
|
|
echo "${ANDROID_AGREE_LICENSE_TERMS}" | ./tools/android -s update sdk --no-ui -a --filter "${SDK_ID},tool,platform-tool" || exit 1
|
|
|
|
# Get SDK system image ID.
|
|
case "${ANDROID_PLATFORM}" in
|
|
arm)
|
|
ABI_SEARCH_TERM="ARM EABI"
|
|
ABI_OPT="armeabi-v7a"
|
|
;;
|
|
mips)
|
|
echo "Unsupported Android test platform: ${ANDROID_PLATFORM}"
|
|
echo "This platform has no system images available to test with."
|
|
exit 1
|
|
;;
|
|
x86)
|
|
ABI_SEARCH_TERM="Intel x86"
|
|
ABI_OPT="x86"
|
|
;;
|
|
*)
|
|
echo "Unknown Android platform: ${ANDROID_PLATFORM}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
ABI_IMG_ID=$(./tools/android -s list sdk -a |\
|
|
grep -F 'System Image' |\
|
|
grep -F "${ABI_SEARCH_TERM}" |\
|
|
grep -Fm1 "API ${ANDROID_API_LEVEL}" |\
|
|
awk '{print $1}' | tr -d '-')
|
|
if [[ -z "${ABI_IMG_ID}" ]]; then
|
|
echo "Could not find ${ABI_SEARCH_TERM} system image for API level ${ANDROID_API_LEVEL}, make sure it's available using:"
|
|
echo " $BASE/sdk/android-sdk-r${SDK_REV}/tools/android list sdk"
|
|
echo "and check if it's in there."
|
|
exit 1
|
|
fi
|
|
|
|
# Install SDK system image
|
|
echo "${ANDROID_AGREE_LICENSE_TERMS}" | ./tools/android -s update sdk --no-ui -a --filter "${ABI_IMG_ID}" || exit 1
|
|
|
|
# Make a VM.
|
|
[[ ! -d "${ANDROID_TEST_PREFIX}" ]] && (mkdir "${ANDROID_TEST_PREFIX}" || exit 1)
|
|
echo n | ./tools/android -s create avd -f \
|
|
-t "android-${ANDROID_API_LEVEL}" \
|
|
-n "${ANDROID_VM_NAME}-${TEST_IDENTIFIER}" \
|
|
-p "${ANDROID_TEST_PREFIX}/${TEST_IDENTIFIER}" \
|
|
-b "${ABI_OPT}" \
|
|
|| exit 1
|
|
|
|
# We're done here.
|
|
popd > /dev/null
|