68 lines
2.3 KiB
Bash
Executable File
68 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# resolves and exports jdk, android sdk, and ndk paths.
|
|
|
|
set -euo pipefail
|
|
|
|
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
|
|
# jdk 17 resolution
|
|
if [[ -z "${JAVA_HOME:-}" ]]; then
|
|
for candidate in \
|
|
"/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home" \
|
|
"/usr/local/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home" \
|
|
"$HOME/.sdkman/candidates/java/current"; do
|
|
if [[ -x "$candidate/bin/java" ]]; then
|
|
export JAVA_HOME="$candidate"
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
if [[ -z "${JAVA_HOME:-}" || ! -x "$JAVA_HOME/bin/java" ]]; then
|
|
echo "JAVA_HOME not resolved. install jdk 17 (brew install openjdk@17 or sdk install java 17.0.19-tem)." >&2
|
|
exit 2
|
|
fi
|
|
|
|
# android sdk resolution
|
|
if [[ -z "${ANDROID_HOME:-}" ]]; then
|
|
for candidate in \
|
|
"/opt/homebrew/share/android-commandlinetools" \
|
|
"/usr/local/share/android-commandlinetools" \
|
|
"$HOME/Library/Android/sdk" \
|
|
"$HOME/Android/Sdk"; do
|
|
if [[ -d "$candidate/platform-tools" || -d "$candidate/cmdline-tools" ]]; then
|
|
export ANDROID_HOME="$candidate"
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
if [[ -z "${ANDROID_HOME:-}" || ! -d "$ANDROID_HOME" ]]; then
|
|
echo "ANDROID_HOME not resolved. install via brew install --cask android-commandlinetools." >&2
|
|
exit 2
|
|
fi
|
|
export ANDROID_SDK_ROOT="$ANDROID_HOME"
|
|
|
|
# ndk version sourced from .android-sdk-packages
|
|
NDK_COORD="$(grep -E '^ndk;' "$REPO_ROOT/.android-sdk-packages" | head -1 | tr -d ' ')"
|
|
NDK_VERSION="${NDK_COORD#ndk;}"
|
|
if [[ -z "$NDK_VERSION" ]]; then
|
|
echo ".android-sdk-packages missing an 'ndk;<version>' entry." >&2
|
|
exit 2
|
|
fi
|
|
export ANDROID_NDK_HOME="$ANDROID_HOME/ndk/$NDK_VERSION"
|
|
export ANDROID_NDK_ROOT="$ANDROID_NDK_HOME"
|
|
if [[ ! -d "$ANDROID_NDK_HOME" ]]; then
|
|
echo "NDK $NDK_VERSION missing at $ANDROID_NDK_HOME — run scripts/android/bootstrap.sh." >&2
|
|
exit 2
|
|
fi
|
|
|
|
# prepends jdk and android sdk binaries to PATH
|
|
export PATH="$JAVA_HOME/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"
|
|
|
|
# target device serial
|
|
ANDROID_TARGET_FILE="$REPO_ROOT/.yrxtls-android-target"
|
|
ANDROID_TARGET="${YRXTALS_ANDROID_DEVICE:-}"
|
|
if [[ -z "$ANDROID_TARGET" && -f "$ANDROID_TARGET_FILE" ]]; then
|
|
ANDROID_TARGET="$(cat "$ANDROID_TARGET_FILE")"
|
|
fi
|
|
export ANDROID_TARGET
|