support newer android ndk versions

pull/583/head
Taner Sener 3 years ago
parent 004ae7187f
commit fd91644221
  1. 8
      .github/workflows/android-build-scripts.yml
  2. 4
      .github/workflows/periodic-builds-android.yml
  3. 8
      android/jni/Android.mk
  4. 3
      scripts/android/dav1d.sh
  5. 3
      scripts/android/gnutls.sh
  6. 6
      scripts/android/libvpx.sh
  7. 80
      scripts/function-android.sh

@ -22,7 +22,7 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy: strategy:
matrix: matrix:
ndk-version: [ 'r22b-linux-x86_64', 'r23b-linux' ] ndk-version: [ 'r22b-linux-x86_64', 'r23b-linux', 'r24-linux', 'r25b-linux' ]
defaults: defaults:
run: run:
shell: bash shell: bash
@ -39,7 +39,7 @@ jobs:
unzip -q -o ndk.zip -d .ndk unzip -q -o ndk.zip -d .ndk
echo "ANDROID_NDK_ROOT=$PWD/.ndk/$(ls .ndk)" >> $GITHUB_ENV echo "ANDROID_NDK_ROOT=$PWD/.ndk/$(ls .ndk)" >> $GITHUB_ENV
- name: run the build script - name: run the build script
run: ./android.sh -d --enable-android-media-codec --enable-android-zlib run: ./android.sh -d --enable-android-media-codec --enable-android-zlib --disable-arm-v7a
- name: print build logs - name: print build logs
if: ${{ always() }} if: ${{ always() }}
run: cat build.log run: cat build.log
@ -80,7 +80,7 @@ jobs:
runs-on: macos-10.15 runs-on: macos-10.15
strategy: strategy:
matrix: matrix:
ndk-version: [ 'r22b-darwin-x86_64', 'r23b-darwin' ] ndk-version: [ 'r22b-darwin-x86_64', 'r23b-darwin', 'r24-darwin', 'r25b-darwin' ]
defaults: defaults:
run: run:
shell: bash shell: bash
@ -97,7 +97,7 @@ jobs:
unzip -q -o ndk.zip -d .ndk unzip -q -o ndk.zip -d .ndk
echo "ANDROID_NDK_ROOT=$PWD/.ndk/$(ls .ndk)" >> $GITHUB_ENV echo "ANDROID_NDK_ROOT=$PWD/.ndk/$(ls .ndk)" >> $GITHUB_ENV
- name: run the build script - name: run the build script
run: ./android.sh -d --enable-android-media-codec --enable-android-zlib run: ./android.sh -d --enable-android-media-codec --enable-android-zlib --disable-arm-v7a
- name: print build logs - name: print build logs
if: ${{ always() }} if: ${{ always() }}
run: cat build.log run: cat build.log

@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy: strategy:
matrix: matrix:
ndk-version: [ 'r22b-linux-x86_64', 'r23b-linux' ] ndk-version: [ 'r22b-linux-x86_64', 'r23b-linux', 'r24-linux', 'r25b-linux' ]
branches: [ 'main', 'development' ] branches: [ 'main', 'development' ]
defaults: defaults:
run: run:
@ -34,7 +34,7 @@ jobs:
unzip -q -o ndk.zip -d .ndk unzip -q -o ndk.zip -d .ndk
echo "ANDROID_NDK_ROOT=$PWD/.ndk/$(ls .ndk)" >> $GITHUB_ENV echo "ANDROID_NDK_ROOT=$PWD/.ndk/$(ls .ndk)" >> $GITHUB_ENV
- name: run the build script - name: run the build script
run: ./android.sh --full --enable-gpl --disable-lib-srt run: ./android.sh --full --enable-gpl --disable-lib-srt --disable-arm-v7a
- name: print build logs - name: print build logs
if: ${{ always() }} if: ${{ always() }}
run: cat build.log run: cat build.log

@ -37,7 +37,11 @@ LOCAL_PATH := $(MY_LOCAL_PATH)/../ffmpeg-kit-android-lib/src/main/cpp
# DEFINE ARCH FLAGS # DEFINE ARCH FLAGS
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a) ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
MY_ARCH_FLAGS := ARM_V7A MY_ARCH_FLAGS := ARM_V7A
MY_ARM_NEON := false ifeq ("$(shell test -e $(MY_LOCAL_PATH)/../build/.lts && echo lts)","lts")
MY_ARM_NEON := false
else
MY_ARM_NEON := true
endif
endif endif
ifeq ($(TARGET_ARCH_ABI), arm64-v8a) ifeq ($(TARGET_ARCH_ABI), arm64-v8a)
MY_ARCH_FLAGS := ARM64_V8A MY_ARCH_FLAGS := ARM64_V8A
@ -45,9 +49,11 @@ ifeq ($(TARGET_ARCH_ABI), arm64-v8a)
endif endif
ifeq ($(TARGET_ARCH_ABI), x86) ifeq ($(TARGET_ARCH_ABI), x86)
MY_ARCH_FLAGS := X86 MY_ARCH_FLAGS := X86
MY_ARM_NEON := true
endif endif
ifeq ($(TARGET_ARCH_ABI), x86_64) ifeq ($(TARGET_ARCH_ABI), x86_64)
MY_ARCH_FLAGS := X86_64 MY_ARCH_FLAGS := X86_64
MY_ARM_NEON := true
endif endif
include $(CLEAR_VARS) include $(CLEAR_VARS)

@ -8,9 +8,10 @@ create_mason_cross_file "$CROSS_FILE" || return 1
# ALWAYS CLEAN THE PREVIOUS BUILD # ALWAYS CLEAN THE PREVIOUS BUILD
rm -rf "${BUILD_DIR}" || return 1 rm -rf "${BUILD_DIR}" || return 1
# ENABLING LTO CAUSES SYMBOL NOT FOUND ERRORS ON NDKS >= 23b
meson "${BUILD_DIR}" \ meson "${BUILD_DIR}" \
--cross-file="$CROSS_FILE" \ --cross-file="$CROSS_FILE" \
-Db_lto=true \ -Db_lto=false \
-Db_ndebug=false \ -Db_ndebug=false \
-Denable_asm=false \ -Denable_asm=false \
-Denable_tools=false \ -Denable_tools=false \

@ -31,6 +31,9 @@ if [[ ! -f "${BASEDIR}"/src/"${LIB_NAME}"/configure ]] || [[ ${RECONF_gnutls} -e
./bootstrap || return 1 ./bootstrap || return 1
fi fi
# MASKING THE -march=all OPTION WHICH BREAKS THE BUILD ON arm64-v8a
${SED_INLINE} "s|AM_CCASFLAGS =|#AM_CCASFLAGS=|g" "${BASEDIR}"/src/"${LIB_NAME}"/lib/accelerated/aarch64/Makefile.in
./configure \ ./configure \
--prefix="${LIB_INSTALL_PREFIX}" \ --prefix="${LIB_INSTALL_PREFIX}" \
--with-pic \ --with-pic \

@ -13,17 +13,17 @@ arm-v7a)
# NEON disabled explicitly because # NEON disabled explicitly because
# --enable-runtime-cpu-detect enables NEON for armv7 cpu # --enable-runtime-cpu-detect enables NEON for armv7 cpu
ASM_OPTIONS="--disable-neon" ASM_OPTIONS="--disable-neon"
unset ASFLAGS export ASFLAGS="-c"
;; ;;
arm-v7a-neon) arm-v7a-neon)
# NEON IS ENABLED BY --enable-runtime-cpu-detect # NEON IS ENABLED BY --enable-runtime-cpu-detect
TARGET_CPU="armv7" TARGET_CPU="armv7"
unset ASFLAGS export ASFLAGS="-c"
;; ;;
arm64-v8a) arm64-v8a)
# NEON IS ENABLED BY --enable-runtime-cpu-detect # NEON IS ENABLED BY --enable-runtime-cpu-detect
TARGET_CPU="arm64" TARGET_CPU="arm64"
unset ASFLAGS export ASFLAGS="-c"
;; ;;
*) *)
# INTEL CPU EXTENSIONS ENABLED BY --enable-runtime-cpu-detect # INTEL CPU EXTENSIONS ENABLED BY --enable-runtime-cpu-detect

@ -227,14 +227,11 @@ get_common_cflags() {
local LTS_BUILD_FLAG="-DFFMPEG_KIT_LTS " local LTS_BUILD_FLAG="-DFFMPEG_KIT_LTS "
fi fi
case ${DETECTED_NDK_VERSION} in if [[ $(compare_versions "$DETECTED_NDK_VERSION" "23") -ge 0 ]]; then
23*) echo "-fstrict-aliasing -DANDROID_NDK -fPIC -DANDROID ${LTS_BUILD_FLAG}-D__ANDROID__ -D__ANDROID_MIN_SDK_VERSION__=${API}"
echo "-fstrict-aliasing -DANDROID_NDK -fPIC -DANDROID ${LTS_BUILD_FLAG}-D__ANDROID__ -D__ANDROID_MIN_SDK_VERSION__=${API}" else
;; echo "-fno-integrated-as -fstrict-aliasing -DANDROID_NDK -fPIC -DANDROID ${LTS_BUILD_FLAG}-D__ANDROID__ -D__ANDROID_API__=${API}"
*) fi
echo "-fno-integrated-as -fstrict-aliasing -DANDROID_NDK -fPIC -DANDROID ${LTS_BUILD_FLAG}-D__ANDROID__ -D__ANDROID_API__=${API}"
;;
esac
} }
get_arch_specific_cflags() { get_arch_specific_cflags() {
@ -249,24 +246,18 @@ get_arch_specific_cflags() {
echo "-march=armv8-a -DFFMPEG_KIT_ARM64_V8A" echo "-march=armv8-a -DFFMPEG_KIT_ARM64_V8A"
;; ;;
x86) x86)
case ${DETECTED_NDK_VERSION} in if [[ $(compare_versions "$DETECTED_NDK_VERSION" "23") -ge 0 ]]; then
23*) echo "-march=i686 -mtune=generic -mssse3 -mfpmath=sse -m32 -DFFMPEG_KIT_X86"
echo "-march=i686 -mtune=generic -mssse3 -mfpmath=sse -m32 -DFFMPEG_KIT_X86" else
;; echo "-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32 -DFFMPEG_KIT_X86"
*) fi
echo "-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32 -DFFMPEG_KIT_X86"
;;
esac
;; ;;
x86-64) x86-64)
case ${DETECTED_NDK_VERSION} in if [[ $(compare_versions "$DETECTED_NDK_VERSION" "23") -ge 0 ]]; then
23*) echo "-march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=generic -DFFMPEG_KIT_X86_64"
echo "-march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=generic -DFFMPEG_KIT_X86_64" else
;; echo "-march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel -DFFMPEG_KIT_X86_64"
*) fi
echo "-march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel -DFFMPEG_KIT_X86_64"
;;
esac
;; ;;
esac esac
} }
@ -1037,33 +1028,30 @@ set_toolchain_paths() {
export CC=$(get_clang_host)-clang export CC=$(get_clang_host)-clang
export CXX=$(get_clang_host)-clang++ export CXX=$(get_clang_host)-clang++
if [ "$1" == "x264" ]; then
export AS=${CC}
else
export AS=${HOST}-as
fi
case ${ARCH} in case ${ARCH} in
arm64-v8a) arm64-v8a)
export ac_cv_c_bigendian=no export ac_cv_c_bigendian=no
;; ;;
esac esac
case ${DETECTED_NDK_VERSION} in if [[ $(compare_versions "$DETECTED_NDK_VERSION" "23") -ge 0 ]]; then
23*) export AR=llvm-ar
export AR=llvm-ar export LD=lld
export LD=lld export RANLIB=llvm-ranlib
export RANLIB=llvm-ranlib export STRIP=llvm-strip
export STRIP=llvm-strip export NM=llvm-nm
export NM=llvm-nm export AS=$CC
;; else
*) export AR=${HOST}-ar
export AR=${HOST}-ar export LD=${HOST}-ld
export LD=${HOST}-ld export RANLIB=${HOST}-ranlib
export RANLIB=${HOST}-ranlib export STRIP=${HOST}-strip
export STRIP=${HOST}-strip export NM=${HOST}-nm
export NM=${HOST}-nm if [ "$1" == "x264" ]; then
;; export AS=${CC}
esac else
export AS=${HOST}-as
fi
fi
export INSTALL_PKG_CONFIG_DIR="${BASEDIR}"/prebuilt/$(get_build_directory)/pkgconfig export INSTALL_PKG_CONFIG_DIR="${BASEDIR}"/prebuilt/$(get_build_directory)/pkgconfig
export ZLIB_PACKAGE_CONFIG_PATH="${INSTALL_PKG_CONFIG_DIR}/zlib.pc" export ZLIB_PACKAGE_CONFIG_PATH="${INSTALL_PKG_CONFIG_DIR}/zlib.pc"

Loading…
Cancel
Save