Files
commandergenius/project/jni/python3/mk/test_setup.sh
2016-12-03 11:31:30 +01:00

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