1
0
mirror of git://f0xx.org/ac/ac-mobile-android synced 2026-07-29 04:59:30 +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:
Anton Afanasyeu
2026-06-28 23:07:17 +02:00
parent f6e69153ca
commit fb8b0c43e7
7 changed files with 347 additions and 1 deletions

View File

@@ -64,7 +64,14 @@ if(LIBOPUS_LIB)
message(STATUS "Linking libopus for ${ANDROID_ABI}: ${LIBOPUS_LIB}")
target_compile_definitions(androidcast_codecs PRIVATE ANDROIDCAST_HAVE_OPUS=1)
target_link_libraries(androidcast_codecs "${LIBOPUS_LIB}")
if(EXISTS "${THIRD_PARTY_ROOT}/opus/include")
# Per-ABI generated include (contains opus/ subdirectory with opus.h)
set(OPUS_ABI_INCLUDE "${NATIVE_LIBS_ROOT}/${ANDROID_ABI}/include")
if(EXISTS "${OPUS_ABI_INCLUDE}/opus/opus.h")
target_include_directories(androidcast_codecs PRIVATE "${OPUS_ABI_INCLUDE}")
elseif(EXISTS "${THIRD_PARTY_ROOT}/opus/include/opus.h")
# Source has flat include layout; create virtual opus/ dir via include parent
target_include_directories(androidcast_codecs PRIVATE "${THIRD_PARTY_ROOT}/opus")
elseif(EXISTS "${THIRD_PARTY_ROOT}/opus/include")
target_include_directories(androidcast_codecs PRIVATE "${THIRD_PARTY_ROOT}/opus/include")
endif()
else()
@@ -92,6 +99,11 @@ if(LIBSPEEX_LIB)
if(EXISTS "${THIRD_PARTY_ROOT}/speex/include")
target_include_directories(androidcast_codecs PRIVATE "${THIRD_PARTY_ROOT}/speex/include")
endif()
# Per-ABI generated speex_config_types.h
set(SPEEX_ABI_INCLUDE "${NATIVE_LIBS_ROOT}/${ANDROID_ABI}/include")
if(EXISTS "${SPEEX_ABI_INCLUDE}/speex/speex_config_types.h")
target_include_directories(androidcast_codecs PRIVATE "${SPEEX_ABI_INCLUDE}")
endif()
else()
message(STATUS "No libspeex.a for ${ANDROID_ABI} — Speex JNI probe off (build with scripts/build-native-codecs.sh ${ANDROID_ABI})")
endif()