mirror of
git://f0xx.org/ac/ac-mobile-android
synced 2026-07-29 02:39:16 +03:00
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>
This commit is contained in:
49
scripts/android-ndk.sh
Executable file
49
scripts/android-ndk.sh
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/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
|
||||
}
|
||||
Reference in New Issue
Block a user