1
0
mirror of git://f0xx.org/ac/ac-mobile-android synced 2026-07-29 03:37:51 +03:00
Files
ac-mobile-android/scripts/android-ndk.sh
Anton Afanasyeu fb8b0c43e7 codecs: add native build scripts for libvpx/opus/speex + fix CMake includes
- 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>
2026-06-28 23:07:17 +02:00

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
}