mirror of
git://f0xx.org/ac/ac-mobile-android
synced 2026-07-29 05:58:26 +03:00
- scripts/build-native-codecs.sh: cross-compile libvpx, opus, speex for Android ABIs (arm64-v8a, armeabi-v7a, x86_64) using NDK clang with -fPIC - scripts/android-ndk.sh: NDK root detection helper - scripts/native-build-cache.sh: ccache detection helper - scripts/init-third-party-submodules.sh: init codec submodules - scripts/ensure-gradle-wrapper.sh: gradle wrapper sanity check - scripts/adb-reconnect.sh: ADB device discovery helpers - ndk/CMakeLists.txt: per-ABI include dirs for opus/ and speex_config_types.h Co-authored-by: Cursor <cursoragent@cursor.com>
50 lines
1.5 KiB
Bash
Executable File
50 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Locate Android NDK root for the project. Source this file.
|
|
# Usage: export ANDROID_NDK_HOME="$(androidcast_find_ndk_root "$ROOT")"
|
|
|
|
androidcast_find_ndk_root() {
|
|
local project_root="${1:-$PWD}"
|
|
local lp="$project_root/local.properties"
|
|
|
|
# Prefer local.properties ndk.dir
|
|
if [[ -f "$lp" ]]; then
|
|
local ndk_dir
|
|
ndk_dir="$(grep '^ndk\.dir=' "$lp" 2>/dev/null | cut -d= -f2 | tr -d '[:space:]')"
|
|
if [[ -n "$ndk_dir" && -d "$ndk_dir" ]]; then
|
|
echo "$ndk_dir"
|
|
return 0
|
|
fi
|
|
fi
|
|
|
|
# ANDROID_NDK_HOME / ANDROID_NDK_ROOT env
|
|
for v in "${ANDROID_NDK_HOME:-}" "${ANDROID_NDK_ROOT:-}"; do
|
|
if [[ -n "$v" && -d "$v" ]]; then
|
|
echo "$v"
|
|
return 0
|
|
fi
|
|
done
|
|
|
|
# Search SDK
|
|
local sdk_root="${ANDROID_HOME:-${ANDROID_SDK_ROOT:-$HOME/Android/Sdk}}"
|
|
if [[ -d "$sdk_root/ndk" ]]; then
|
|
# Prefer NDK 29, then highest available
|
|
for preferred in 29 28 27 26; do
|
|
local match
|
|
match="$(ls "$sdk_root/ndk" 2>/dev/null | grep "^${preferred}\." | sort -V | tail -1)"
|
|
if [[ -n "$match" && -d "$sdk_root/ndk/$match" ]]; then
|
|
echo "$sdk_root/ndk/$match"
|
|
return 0
|
|
fi
|
|
done
|
|
local latest
|
|
latest="$(ls "$sdk_root/ndk" 2>/dev/null | sort -V | tail -1)"
|
|
if [[ -n "$latest" && -d "$sdk_root/ndk/$latest" ]]; then
|
|
echo "$sdk_root/ndk/$latest"
|
|
return 0
|
|
fi
|
|
fi
|
|
|
|
echo "ERROR: Android NDK not found. Install via Android Studio SDK Manager or set ANDROID_NDK_HOME." >&2
|
|
return 1
|
|
}
|