allow defining a custom toolkit for android and enable asm for 64 bit architectures with x265

development
Taner Sener 1 year ago
parent e4476c2fc5
commit 47eb7d32a2
  1. 12
      android.sh
  2. 10
      scripts/android/chromaprint.sh
  3. 2
      scripts/android/ffmpeg.sh
  4. 10
      scripts/android/jpeg.sh
  5. 10
      scripts/android/libaom.sh
  6. 10
      scripts/android/libilbc.sh
  7. 8
      scripts/android/libvidstab.sh
  8. 24
      scripts/android/openh264.sh
  9. 10
      scripts/android/snappy.sh
  10. 10
      scripts/android/soxr.sh
  11. 10
      scripts/android/srt.sh
  12. 29
      scripts/android/x265.sh
  13. 28
      scripts/function-android.sh
  14. 9
      scripts/main-android.sh
  15. 2
      scripts/run-android.sh
  16. 2
      scripts/source.sh

@ -138,6 +138,10 @@ while [ ! $# -eq 0 ]; do
--no-ffmpeg-kit-protocols) --no-ffmpeg-kit-protocols)
export NO_FFMPEG_KIT_PROTOCOLS="1" export NO_FFMPEG_KIT_PROTOCOLS="1"
;; ;;
--toolchain=*)
ANDROID_TOOLCHAIN=$(echo $1 | sed -e 's/^--[a-z]*=//g')
export ANDROID_TOOLCHAIN="${ANDROID_TOOLCHAIN}"
;;
*) *)
print_unknown_option "$1" print_unknown_option "$1"
;; ;;
@ -150,6 +154,12 @@ if [[ -z ${BUILD_VERSION} ]]; then
exit 1 exit 1
fi fi
if [[ -z ${ANDROID_TOOLCHAIN} ]]; then
export ANDROID_TOOLCHAIN="${ANDROID_NDK_ROOT}"/toolchains/llvm/prebuilt/"$(get_toolchain)"
fi
echo -e "INFO: Using Android toolchain at ${ANDROID_TOOLCHAIN}\n" 1>>"${BASEDIR}"/build.log 2>&1
# PROCESS FULL OPTION AS LAST OPTION # PROCESS FULL OPTION AS LAST OPTION
if [[ -n ${BUILD_FULL} ]]; then if [[ -n ${BUILD_FULL} ]]; then
for library in {0..61}; do for library in {0..61}; do
@ -227,8 +237,6 @@ for run_arch in {0..12}; do
fi fi
export ARCH=$(get_arch_name $run_arch) export ARCH=$(get_arch_name $run_arch)
export TOOLCHAIN=$(get_toolchain)
export TOOLCHAIN_ARCH=$(get_toolchain_arch)
# EXECUTE MAIN BUILD SCRIPT # EXECUTE MAIN BUILD SCRIPT
. "${BASEDIR}"/scripts/main-android.sh "${ENABLED_LIBRARIES[@]}" || exit 1 . "${BASEDIR}"/scripts/main-android.sh "${ENABLED_LIBRARIES[@]}" || exit 1

@ -13,11 +13,11 @@ cmake -Wno-dev \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \ -DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Generic \ -DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \ -DCMAKE_C_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CC" \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \ -DCMAKE_CXX_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CXX" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \ -DCMAKE_LINKER="${ANDROID_TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \ -DCMAKE_AR="${ANDROID_TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \ -DCMAKE_AS="${ANDROID_TOOLCHAIN}/bin/$AS" \
-DCMAKE_SYSTEM_PROCESSOR=$(get_cmake_system_processor) \ -DCMAKE_SYSTEM_PROCESSOR=$(get_cmake_system_processor) \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \ -DCMAKE_POSITION_INDEPENDENT_CODE=1 \
-DFFT_LIB=kissfft \ -DFFT_LIB=kissfft \

@ -17,7 +17,7 @@ echo -e "INFO: $(uname -a)\n" 1>>"${BASEDIR}"/build.log 2>&1
echo -e "----------------------------------------------------------------\n" 1>>"${BASEDIR}"/build.log 2>&1 echo -e "----------------------------------------------------------------\n" 1>>"${BASEDIR}"/build.log 2>&1
FFMPEG_LIBRARY_PATH="${LIB_INSTALL_BASE}/${LIB_NAME}" FFMPEG_LIBRARY_PATH="${LIB_INSTALL_BASE}/${LIB_NAME}"
ANDROID_SYSROOT="${ANDROID_NDK_ROOT}"/toolchains/llvm/prebuilt/"${TOOLCHAIN}"/sysroot ANDROID_SYSROOT="${ANDROID_TOOLCHAIN}"/sysroot
# SET PATHS # SET PATHS
set_toolchain_paths "${LIB_NAME}" set_toolchain_paths "${LIB_NAME}"

@ -13,11 +13,11 @@ cmake -Wno-dev \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \ -DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Generic \ -DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \ -DCMAKE_C_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CC" \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \ -DCMAKE_CXX_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CXX" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \ -DCMAKE_LINKER="${ANDROID_TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \ -DCMAKE_AR="${ANDROID_TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \ -DCMAKE_AS="${ANDROID_TOOLCHAIN}/bin/$AS" \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \ -DCMAKE_POSITION_INDEPENDENT_CODE=1 \
-DENABLE_STATIC=1 \ -DENABLE_STATIC=1 \
-DENABLE_SHARED=0 \ -DENABLE_SHARED=0 \

@ -37,11 +37,11 @@ cmake -Wno-dev \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SYSTEM_NAME=Generic \ -DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \ -DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \ -DCMAKE_CXX_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CXX" \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \ -DCMAKE_C_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CC" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \ -DCMAKE_LINKER="${ANDROID_TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \ -DCMAKE_AR="${ANDROID_TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \ -DCMAKE_AS="${ANDROID_TOOLCHAIN}/bin/$AS" \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \ -DCMAKE_POSITION_INDEPENDENT_CODE=1 \
${ASM_OPTIONS} \ ${ASM_OPTIONS} \
-DENABLE_TESTS=0 \ -DENABLE_TESTS=0 \

@ -17,11 +17,11 @@ cmake -Wno-dev \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \ -DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Generic \ -DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \ -DCMAKE_C_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CC" \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \ -DCMAKE_CXX_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CXX" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \ -DCMAKE_LINKER="${ANDROID_TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \ -DCMAKE_AR="${ANDROID_TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \ -DCMAKE_AS="${ANDROID_TOOLCHAIN}/bin/$AS" \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \ -DCMAKE_POSITION_INDEPENDENT_CODE=1 \
-DWEBRTC_ANDROID=1 \ -DWEBRTC_ANDROID=1 \
-DUNIX=1 \ -DUNIX=1 \

@ -27,10 +27,10 @@ cmake -Wno-dev \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \ -DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Generic \ -DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \ -DCMAKE_C_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CC" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \ -DCMAKE_LINKER="${ANDROID_TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \ -DCMAKE_AR="${ANDROID_TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \ -DCMAKE_AS="${ANDROID_TOOLCHAIN}/bin/$AS" \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \ -DCMAKE_POSITION_INDEPENDENT_CODE=1 \
-DUSE_OMP=0 \ -DUSE_OMP=0 \
${ASM_OPTIONS} \ ${ASM_OPTIONS} \

@ -6,16 +6,28 @@ export LDFLAGS="$LDFLAGS $(pkg-config --libs --static libiconv) $(pkg-config --l
# SET BUILD OPTIONS # SET BUILD OPTIONS
case ${ARCH} in case ${ARCH} in
arm-v7a)
BUILD_ARCH=arm
CFLAGS+=" -DANDROID_NDK"
;;
arm-v7a-neon) arm-v7a-neon)
ASM_OPTIONS=arm ASM_OPTIONS=arm
BUILD_ARCH=arm
CFLAGS+=" -DHAVE_NEON -DANDROID_NDK" CFLAGS+=" -DHAVE_NEON -DANDROID_NDK"
;; ;;
arm64-v8a) arm64-v8a)
ASM_OPTIONS=arm64 ASM_OPTIONS=arm64
BUILD_ARCH=arm64
CFLAGS+=" -DHAVE_NEON_AARCH64 -DANDROID_NDK" CFLAGS+=" -DHAVE_NEON_AARCH64 -DANDROID_NDK"
;; ;;
x86*) x86)
ASM_OPTIONS=x86
BUILD_ARCH=x86
CFLAGS+=" -DHAVE_AVX2 -DANDROID_NDK"
;;
x86-64)
ASM_OPTIONS=x86 ASM_OPTIONS=x86
BUILD_ARCH=x86_64
CFLAGS+=" -DHAVE_AVX2 -DANDROID_NDK" CFLAGS+=" -DHAVE_AVX2 -DANDROID_NDK"
;; ;;
esac esac
@ -33,10 +45,11 @@ ${SED_INLINE} 's/^COMMON_OBJS +=/# COMMON_OBJS +=/' "${BASEDIR}"/src/"${LIB_NAME
${SED_INLINE} 's/^COMMON_CFLAGS +=/# COMMON_CFLAGS +=/' "${BASEDIR}"/src/"${LIB_NAME}"/build/platform-android.mk ${SED_INLINE} 's/^COMMON_CFLAGS +=/# COMMON_CFLAGS +=/' "${BASEDIR}"/src/"${LIB_NAME}"/build/platform-android.mk
make -j$(get_cpu_count) \ make -j$(get_cpu_count) \
ARCH="$(get_toolchain_arch)" \ ARCH="${BUILD_ARCH}" \
CC="$CC" \ CC="${CC}" \
CFLAGS="$CFLAGS" \ CFLAGS="${CFLAGS}" \
CXX="$CXX" \ CXX="${CXX}" \
AR="${AR}" \
CXXFLAGS="${CXXFLAGS}" \ CXXFLAGS="${CXXFLAGS}" \
LDFLAGS="${LDFLAGS}" \ LDFLAGS="${LDFLAGS}" \
OS=android \ OS=android \
@ -44,7 +57,6 @@ make -j$(get_cpu_count) \
NDKLEVEL="${API}" \ NDKLEVEL="${API}" \
NDKROOT="${ANDROID_NDK_ROOT}" \ NDKROOT="${ANDROID_NDK_ROOT}" \
NDK_TOOLCHAIN_VERSION=clang \ NDK_TOOLCHAIN_VERSION=clang \
AR="$AR" \
ASM_OPTIONS=${ASM_OPTIONS} \ ASM_OPTIONS=${ASM_OPTIONS} \
TARGET="android-${API}" install-static || return 1 TARGET="android-${API}" install-static || return 1

@ -13,11 +13,11 @@ cmake -Wno-dev \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \ -DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Generic \ -DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \ -DCMAKE_CXX_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CXX" \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \ -DCMAKE_C_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CC" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \ -DCMAKE_LINKER="${ANDROID_TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \ -DCMAKE_AR="${ANDROID_TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \ -DCMAKE_AS="${ANDROID_TOOLCHAIN}/bin/$AS" \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \ -DCMAKE_POSITION_INDEPENDENT_CODE=1 \
-DSNAPPY_BUILD_TESTS=0 \ -DSNAPPY_BUILD_TESTS=0 \
-DSNAPPY_BUILD_BENCHMARKS=0 \ -DSNAPPY_BUILD_BENCHMARKS=0 \

@ -13,11 +13,11 @@ cmake -Wno-dev \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \ -DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Generic \ -DCMAKE_SYSTEM_NAME=Generic \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \ -DCMAKE_CXX_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CXX" \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \ -DCMAKE_C_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CC" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \ -DCMAKE_LINKER="${ANDROID_TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \ -DCMAKE_AR="${ANDROID_TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \ -DCMAKE_AS="${ANDROID_TOOLCHAIN}/bin/$AS" \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \ -DCMAKE_POSITION_INDEPENDENT_CODE=1 \
-DBUILD_TESTS=0 \ -DBUILD_TESTS=0 \
-DWITH_DEV_TRACE=0 \ -DWITH_DEV_TRACE=0 \

@ -36,11 +36,11 @@ cmake -Wno-dev \
-DCMAKE_SYSTEM_NAME=Android \ -DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=${API} \ -DCMAKE_SYSTEM_VERSION=${API} \
-DCMAKE_ANDROID_NDK=${ANDROID_NDK_ROOT} \ -DCMAKE_ANDROID_NDK=${ANDROID_NDK_ROOT} \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \ -DCMAKE_CXX_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CXX" \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \ -DCMAKE_C_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CC" \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \ -DCMAKE_LINKER="${ANDROID_TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \ -DCMAKE_AR="${ANDROID_TOOLCHAIN}/bin/$AR" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \ -DCMAKE_AS="${ANDROID_TOOLCHAIN}/bin/$AS" \
-DCMAKE_SYSTEM_LOADED=1 \ -DCMAKE_SYSTEM_LOADED=1 \
-DCMAKE_SYSTEM_PROCESSOR="${SYSTEM_PROCESSOR}" \ -DCMAKE_SYSTEM_PROCESSOR="${SYSTEM_PROCESSOR}" \
-DENABLE_STDCXX_SYNC=1 \ -DENABLE_STDCXX_SYNC=1 \

@ -1,19 +1,22 @@
#!/bin/bash #!/bin/bash
# SET BUILD OPTIONS # SET BUILD OPTIONS
git checkout "${BASEDIR}"/src/"${LIB_NAME}"/source/CMakeLists.txt || return 1
ASM_OPTIONS="" ASM_OPTIONS=""
case ${ARCH} in case ${ARCH} in
arm-v7a | arm-v7a-neon) arm-v7a | arm-v7a-neon)
ASM_OPTIONS="-DENABLE_ASSEMBLY=0 -DCROSS_COMPILE_ARM=1" ASM_OPTIONS="-DENABLE_ASSEMBLY=0"
${SED_INLINE} "s|ARM_ARGS -mcpu=native.*|ARM_ARGS $(get_arch_specific_cflags) --target=$(get_clang_host))|g" "${BASEDIR}"/src/"${LIB_NAME}"/source/CMakeLists.txt || return 1
;; ;;
arm64-v8a) arm64-v8a)
ASM_OPTIONS="-DENABLE_ASSEMBLY=0 -DCROSS_COMPILE_ARM=1" ASM_OPTIONS="-DENABLE_ASSEMBLY=1"
${SED_INLINE} "s|ARM_ARGS -fPIC -flax-vector-conversions.*|ARM_ARGS --target=$(get_clang_host) -fPIC -flax-vector-conversions)|g" "${BASEDIR}"/src/"${LIB_NAME}"/source/CMakeLists.txt || return 1
;; ;;
x86) x86)
ASM_OPTIONS="-DENABLE_ASSEMBLY=0 -DCROSS_COMPILE_ARM=0" ASM_OPTIONS="-DENABLE_ASSEMBLY=0"
;; ;;
x86-64) x86-64)
ASM_OPTIONS="-DENABLE_ASSEMBLY=0 -DCROSS_COMPILE_ARM=0" ASM_OPTIONS="-DENABLE_ASSEMBLY=1"
;; ;;
esac esac
@ -28,23 +31,23 @@ cmake -Wno-dev \
-DCMAKE_C_FLAGS="${CFLAGS}" \ -DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \ -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
-DCMAKE_SYSROOT="${ANDROID_SYSROOT}" \
-DCMAKE_FIND_ROOT_PATH="${ANDROID_SYSROOT}" \ -DCMAKE_FIND_ROOT_PATH="${ANDROID_SYSROOT}" \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \ -DCMAKE_INSTALL_PREFIX="${LIB_INSTALL_PREFIX}" \
-DCMAKE_SYSTEM_NAME=Generic \ -DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_C_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CC" \ -DCMAKE_CROSSCOMPILING=True \
-DCMAKE_CXX_COMPILER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$CXX" \ -DCMAKE_SYSTEM_VERSION=${API} \
-DCMAKE_LINKER="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$LD" \ -DCMAKE_C_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CC" \
-DCMAKE_AR="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AR" \ -DCMAKE_CXX_COMPILER="${ANDROID_TOOLCHAIN}/bin/$CXX" \
-DCMAKE_AS="${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin/$AS" \ -DCMAKE_LINKER="${ANDROID_TOOLCHAIN}/bin/$LD" \
-DCMAKE_AR="${ANDROID_TOOLCHAIN}/bin/$AR" \
-DCMAKE_POSITION_INDEPENDENT_CODE=1 \ -DCMAKE_POSITION_INDEPENDENT_CODE=1 \
-DSTATIC_LINK_CRT=1 \ -DSTATIC_LINK_CRT=1 \
-DENABLE_PIC=1 \ -DENABLE_PIC=1 \
-DENABLE_CLI=0 \ -DENABLE_CLI=0 \
-DHIGH_BIT_DEPTH=1 \ -DHIGH_BIT_DEPTH=1 \
${ASM_OPTIONS} \ ${ASM_OPTIONS} \
-DCMAKE_SYSTEM_PROCESSOR="${ARCH}" \ -DCMAKE_SYSTEM_PROCESSOR="$(get_cmake_system_processor)"\
-DENABLE_SHARED=0 "${BASEDIR}"/src/"${LIB_NAME}"/source || return 1 -DENABLE_SHARED=0 "${BASEDIR}"/src/"${LIB_NAME}"/source || return 1
make -j$(get_cpu_count) || return 1 make -j$(get_cpu_count) || return 1
@ -52,4 +55,4 @@ make -j$(get_cpu_count) || return 1
make install || return 1 make install || return 1
# CREATE PACKAGE CONFIG MANUALLY # CREATE PACKAGE CONFIG MANUALLY
create_x265_package_config "3.4" || return 1 create_x265_package_config "3.6" || return 1

@ -33,7 +33,7 @@ under the prebuilt folder.\n"
echo -e "Usage: ./$COMMAND [OPTION]... [VAR=VALUE]...\n" echo -e "Usage: ./$COMMAND [OPTION]... [VAR=VALUE]...\n"
echo -e "Specify environment variables as VARIABLE=VALUE to override default build options.\n" echo -e "Specify environment variables as VARIABLE=VALUE to override default build options.\n"
display_help_options " -l, --lts\t\t\tbuild lts packages to support API 16+ devices" " --api-level=api\t\toverride Android api level" " --no-ffmpeg-kit-protocols\tdisable custom ffmpeg-kit protocols (saf)" display_help_options " -l, --lts\t\t\tbuild lts packages to support API 16+ devices\n --api-level=api\t\toverride Android api level\n --toolchain=path\t\toverride the default (llvm) toolchain path\n --no-ffmpeg-kit-protocols\tdisable custom ffmpeg-kit protocols (saf)"
display_help_licensing display_help_licensing
echo -e "Architectures:" echo -e "Architectures:"
@ -155,13 +155,13 @@ get_toolchain() {
get_cmake_system_processor() { get_cmake_system_processor() {
case ${ARCH} in case ${ARCH} in
arm-v7a | arm-v7a-neon) arm-v7a | arm-v7a-neon)
echo "arm" echo "armv7-a"
;; ;;
arm64-v8a) arm64-v8a)
echo "aarch64" echo "aarch64"
;; ;;
x86) x86)
echo "x86" echo "i686"
;; ;;
x86-64) x86-64)
echo "x86_64" echo "x86_64"
@ -192,16 +192,16 @@ get_target_cpu() {
get_toolchain_arch() { get_toolchain_arch() {
case ${ARCH} in case ${ARCH} in
arm-v7a | arm-v7a-neon) arm-v7a | arm-v7a-neon)
echo "arm" echo "arm-linux-androideabi"
;; ;;
arm64-v8a) arm64-v8a)
echo "arm64" echo "aarch64-linux-android"
;; ;;
x86) x86)
echo "x86" echo "i686-linux-android"
;; ;;
x86-64) x86-64)
echo "x86_64" echo "x86_64-linux-android"
;; ;;
esac esac
} }
@ -224,7 +224,7 @@ get_android_arch() {
} }
get_common_includes() { get_common_includes() {
echo "-I${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/sysroot/usr/include" echo "-I${ANDROID_TOOLCHAIN}/sysroot/usr/include"
} }
get_common_cflags() { get_common_cflags() {
@ -412,7 +412,7 @@ get_cxxflags() {
} }
get_common_linked_libraries() { get_common_linked_libraries() {
local COMMON_LIBRARY_PATHS="-L${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/${HOST}/lib -L${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/sysroot/usr/lib/${HOST}/${API}" local COMMON_LIBRARY_PATHS="-L${ANDROID_TOOLCHAIN}/sysroot/usr/lib/${HOST}/${API}"
case $1 in case $1 in
ffmpeg) ffmpeg)
@ -931,12 +931,12 @@ EOF
} }
create_zlib_system_package_config() { create_zlib_system_package_config() {
ZLIB_VERSION=$(grep '#define ZLIB_VERSION' "${ANDROID_NDK_ROOT}"/toolchains/llvm/prebuilt/"${TOOLCHAIN}"/sysroot/usr/include/zlib.h | grep -Eo '\".*\"' | sed -e 's/\"//g') ZLIB_VERSION=$(grep '#define ZLIB_VERSION' "${ANDROID_TOOLCHAIN}"/sysroot/usr/include/zlib.h | grep -Eo '\".*\"' | sed -e 's/\"//g')
cat >"${INSTALL_PKG_CONFIG_DIR}/zlib.pc" <<EOF cat >"${INSTALL_PKG_CONFIG_DIR}/zlib.pc" <<EOF
prefix="${ANDROID_SYSROOT}"/usr prefix="${ANDROID_SYSROOT}"/usr
exec_prefix=\${prefix} exec_prefix=\${prefix}
libdir=${ANDROID_NDK_ROOT}/platforms/android-${API}/arch-${TOOLCHAIN_ARCH}/usr/lib libdir=${ANDROID_SYSROOT}/usr/lib/$(get_toolchain_arch)
includedir=\${prefix}/include includedir=\${prefix}/include
Name: zlib Name: zlib
@ -1039,7 +1039,7 @@ android_ndk_cmake() {
} }
set_toolchain_paths() { set_toolchain_paths() {
export PATH=$PATH:${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/${TOOLCHAIN}/bin export PATH="$PATH":"${ANDROID_TOOLCHAIN}"/bin
HOST=$(get_host) HOST=$(get_host)
@ -1053,7 +1053,7 @@ set_toolchain_paths() {
esac esac
if [[ $(compare_versions "$DETECTED_NDK_VERSION" "23") -ge 0 ]]; then if [[ $(compare_versions "$DETECTED_NDK_VERSION" "23") -ge 0 ]]; then
export AR=llvm-ar export AR=llvm-ar
export LD=lld export LD=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
@ -1064,7 +1064,7 @@ set_toolchain_paths() {
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 if [[ "$1" == "x264" ]]; then
export AS=${CC} export AS=${CC}
else else
export AS=${HOST}-as export AS=${HOST}-as

@ -15,13 +15,8 @@ if [[ -z ${BASEDIR} ]]; then
exit 1 exit 1
fi fi
if [[ -z ${TOOLCHAIN} ]]; then if [[ -z ${ANDROID_TOOLCHAIN} ]]; then
echo -e "\n(*) TOOLCHAIN not defined\n" echo -e "\n(*) ANDROID_TOOLCHAIN is not set\n"
exit 1
fi
if [[ -z ${TOOLCHAIN_ARCH} ]]; then
echo -e "\n(*) TOOLCHAIN_ARCH not defined\n"
exit 1 exit 1
fi fi

@ -33,7 +33,7 @@ echo -e "----------------------------------------------------------------\n"
cd "${BASEDIR}"/src/"${LIB_NAME}" || return 1 cd "${BASEDIR}"/src/"${LIB_NAME}" || return 1
LIB_INSTALL_PREFIX="${ENABLED_LIBRARY_PATH}" LIB_INSTALL_PREFIX="${ENABLED_LIBRARY_PATH}"
ANDROID_SYSROOT="${ANDROID_NDK_ROOT}"/toolchains/llvm/prebuilt/"${TOOLCHAIN}"/sysroot ANDROID_SYSROOT="${ANDROID_TOOLCHAIN}"/sysroot
BUILD_DIR=$(get_cmake_build_directory) BUILD_DIR=$(get_cmake_build_directory)
rm -rf "${LIB_INSTALL_PREFIX}" || return 1 rm -rf "${LIB_INSTALL_PREFIX}" || return 1

@ -253,7 +253,7 @@ get_library_source() {
;; ;;
x265) x265)
SOURCE_REPO_URL="https://github.com/arthenica/x265" SOURCE_REPO_URL="https://github.com/arthenica/x265"
SOURCE_ID="3.4" SOURCE_ID="3.6"
SOURCE_TYPE="TAG" SOURCE_TYPE="TAG"
;; ;;
xvidcore) xvidcore)

Loading…
Cancel
Save