mirror of
git://code.qt.io/qt/qt5.git
synced 2026-04-24 21:57:45 +08:00
Build FFmpeg with each Android NDK version
Multiple Android NDKs are installed in provisoning. FFmpeg build uses
NDK in its build process for Android, so this change makes provisioning
build multiple Android FFmpeg builds, so each Android nightly can use a
FFmpeg build where its corresponding NDK version was used.
Task-number: QTQAINFRA-7069
Change-Id: Ie4457c87b7b75e0c711a76bd8170e718cbda445d
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit 75fea893b1)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
committed by
Qt Cherry-pick Bot
parent
03f8208be9
commit
980cd3659a
@@ -21,16 +21,16 @@ assert_envvar_is_populated_dir() {
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_DEFAULT"
|
||||
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_DEFAULT"
|
||||
|
||||
build_ffmpeg_android() {
|
||||
local target_arch=$1
|
||||
local target_dir=$2
|
||||
local ndk_root=$3
|
||||
local openssl_android_path=$4
|
||||
|
||||
sudo mkdir -p "$target_dir"
|
||||
|
||||
local openssl_include="$OPENSSL_ANDROID_HOME_LATEST/include"
|
||||
local openssl_include="$openssl_android_path/include"
|
||||
local openssl_libs
|
||||
local libs_prefix
|
||||
local target_cpu
|
||||
@@ -40,19 +40,19 @@ build_ffmpeg_android() {
|
||||
target_toolchain_arch="x86_64-linux-android"
|
||||
target_arch=x86_64
|
||||
target_cpu=x86-64
|
||||
openssl_libs="$OPENSSL_ANDROID_HOME_LATEST/x86_64"
|
||||
openssl_libs="$openssl_android_path/x86_64"
|
||||
libs_prefix="_x86_64"
|
||||
elif [ "$target_arch" == "x86" ]; then
|
||||
target_toolchain_arch="i686-linux-android"
|
||||
target_arch=x86
|
||||
target_cpu=i686
|
||||
openssl_libs="$OPENSSL_ANDROID_HOME_LATEST/x86"
|
||||
openssl_libs="$openssl_android_path/x86"
|
||||
libs_prefix="_x86"
|
||||
elif [ "$target_arch" == "arm64" ]; then
|
||||
target_toolchain_arch="aarch64-linux-android"
|
||||
target_arch=aarch64
|
||||
target_cpu=armv8-a
|
||||
openssl_libs="$OPENSSL_ANDROID_HOME_LATEST/arm64-v8a"
|
||||
openssl_libs="$openssl_android_path/arm64-v8a"
|
||||
libs_prefix="_arm64-v8a"
|
||||
fi
|
||||
|
||||
@@ -61,7 +61,6 @@ build_ffmpeg_android() {
|
||||
|
||||
local api_version=24
|
||||
|
||||
local ndk_root=$ANDROID_NDK_ROOT_LATEST
|
||||
local ndk_host
|
||||
if uname -a |grep -q "Darwin"; then
|
||||
ndk_host=darwin-x86_64
|
||||
@@ -108,15 +107,21 @@ build_ffmpeg_android() {
|
||||
if [ "$os" == "android-x86" ]; then
|
||||
target_arch=x86
|
||||
target_dir="/usr/local/android/ffmpeg-x86"
|
||||
envvar="FFMPEG_DIR_ANDROID_X86"
|
||||
envvar_latest="FFMPEG_DIR_ANDROID_X86_NDK_LATEST"
|
||||
envvar_nightly1="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY1"
|
||||
envvar_nightly2="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY2"
|
||||
elif [ "$os" == "android-x86_64" ]; then
|
||||
target_arch=x86_64
|
||||
target_dir="/usr/local/android/ffmpeg-x86_64"
|
||||
envvar="FFMPEG_DIR_ANDROID_X86_64"
|
||||
envvar_latest="FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST"
|
||||
envvar_nightly1="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY1"
|
||||
envvar_nightly2="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY2"
|
||||
elif [ "$os" == "android-arm64" ]; then
|
||||
target_arch=arm64
|
||||
target_dir="/usr/local/android/ffmpeg-arm64"
|
||||
envvar="FFMPEG_DIR_ANDROID_ARM64"
|
||||
envvar_latest="FFMPEG_DIR_ANDROID_ARM64_NDK_LATEST"
|
||||
envvar_nightly1="FFMPEG_DIR_ANDROID_ARM64_NDK_NIGHTLY1"
|
||||
envvar_nightly2="FFMPEG_DIR_ANDROID_ARM64_NDK_NIGHTLY2"
|
||||
else
|
||||
>&2 echo "Unhandled android os param: $os"
|
||||
exit 1
|
||||
@@ -127,5 +132,21 @@ if [ ! -z $target_install_dir_param ]; then
|
||||
target_dir=$target_install_dir_param
|
||||
fi
|
||||
|
||||
build_ffmpeg_android "$target_arch" "$target_dir"
|
||||
set_ffmpeg_dir_env_var "$envvar" "$target_dir"
|
||||
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_LATEST"
|
||||
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_LATEST"
|
||||
build_ffmpeg_android "$target_arch" "$target_dir" "$ANDROID_NDK_ROOT_LATEST" "$OPENSSL_ANDROID_HOME_LATEST"
|
||||
set_ffmpeg_dir_env_var "$envvar_latest" "$target_dir"
|
||||
|
||||
if [ "${ANDROID_NDK_ROOT_NIGHTLY1}" ]; then
|
||||
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY1"
|
||||
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY1"
|
||||
build_ffmpeg_android "$target_arch" "$target_dir" "$ANDROID_NDK_ROOT_NIGHTLY1" "$OPENSSL_ANDROID_HOME_NIGHTLY1"
|
||||
set_ffmpeg_dir_env_var "$envvar_nightly1" "$target_dir"
|
||||
fi
|
||||
|
||||
if [ "${ANDROID_NDK_ROOT_NIGHTLY2}" ]; then
|
||||
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY2"
|
||||
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY2"
|
||||
build_ffmpeg_android "$target_arch" "$target_dir" "$ANDROID_NDK_ROOT_NIGHTLY2" "$OPENSSL_ANDROID_HOME_NIGHTLY2"
|
||||
set_ffmpeg_dir_env_var "$envvar_nightly2" "$target_dir"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user