FFmpeg, Android: Simplify OS parameter logic

The script accepts an OS parameter, which is then forwarded into the
`build_ffmpeg_android` function. This function expects a different set
of values, that are different in name only, not in meaning.

This patch makes us forward the OS parameter directly into the function
and changes the internal logic accordingly.

No functional changes.

Pick-to: 6.11 6.10 6.8
Change-Id: I5614f1cf489594cfab2966a680e87a95c7be267b
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
This commit is contained in:
Nils Petter Skålerud
2026-01-19 10:43:29 +01:00
parent 7f2d96a43e
commit ade4488de9

View File

@@ -24,43 +24,46 @@ assert_envvar_is_populated_dir() {
} }
build_ffmpeg_android() { build_ffmpeg_android() {
local target_arch=$1 local target_dir=$1
local target_dir=$2 local ndk_root=$2
local ndk_root=$3 local openssl_android_path=$3
local openssl_android_path=$4
sudo mkdir -p "$target_dir" sudo mkdir -p "$target_dir"
local openssl_include="$openssl_android_path/include" local openssl_include="$openssl_android_path/include"
local target_arch
local openssl_libs local openssl_libs
local libs_prefix local libs_prefix
local target_cpu local target_cpu
local target_toolchain_arch local target_toolchain_arch
if [ "$target_arch" == "x86_64" ]; then if [ "$os" == "android-x86" ]; then
target_toolchain_arch="x86_64-linux-android"
target_arch=x86_64
target_cpu=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_toolchain_arch="i686-linux-android"
target_arch=x86 target_arch=x86
target_cpu=i686 target_cpu=i686
openssl_libs="$openssl_android_path/x86" openssl_libs="$openssl_android_path/x86"
libs_prefix="_x86" libs_prefix="_x86"
elif [ "$target_arch" == "arm32" ]; then elif [ "$os" == "android-x86_64" ]; then
target_toolchain_arch="x86_64-linux-android"
target_arch=x86_64
target_cpu=x86-64
openssl_libs="$openssl_android_path/x86_64"
libs_prefix="_x86_64"
elif [ "$os" == "android-arm32" ]; then
target_toolchain_arch="armv7a-linux-androideabi" target_toolchain_arch="armv7a-linux-androideabi"
target_arch=arm target_arch=arm
target_cpu=armv7-a target_cpu=armv7-a
openssl_libs="$openssl_android_path/armeabi-v7a" openssl_libs="$openssl_android_path/armeabi-v7a"
libs_prefix="_arm32-v7a" libs_prefix="_arm32-v7a"
elif [ "$target_arch" == "arm64" ]; then elif [ "$os" == "android-arm64" ]; then
target_toolchain_arch="aarch64-linux-android" target_toolchain_arch="aarch64-linux-android"
target_arch=aarch64 target_arch=aarch64
target_cpu=armv8-a target_cpu=armv8-a
openssl_libs="$openssl_android_path/arm64-v8a" openssl_libs="$openssl_android_path/arm64-v8a"
libs_prefix="_arm64-v8a" libs_prefix="_arm64-v8a"
else
>&2 echo "Unhandled android os param: $os"
exit 1
fi fi
ln -Ffs "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so" ln -Ffs "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so"
@@ -127,28 +130,24 @@ build_ffmpeg_android() {
} }
if [ "$os" == "android-x86" ]; then if [ "$os" == "android-x86" ]; then
target_arch=x86
target_dir="/usr/local/android/ffmpeg-x86" target_dir="/usr/local/android/ffmpeg-x86"
envvar_latest="FFMPEG_DIR_ANDROID_X86_NDK_LATEST" envvar_latest="FFMPEG_DIR_ANDROID_X86_NDK_LATEST"
envvar_nightly1="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY1" envvar_nightly1="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY1"
envvar_nightly2="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY2" envvar_nightly2="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY2"
envvar_preview="FFMPEG_DIR_ANDROID_X86_NDK_PREVIEW" envvar_preview="FFMPEG_DIR_ANDROID_X86_NDK_PREVIEW"
elif [ "$os" == "android-x86_64" ]; then elif [ "$os" == "android-x86_64" ]; then
target_arch=x86_64
target_dir="/usr/local/android/ffmpeg-x86_64" target_dir="/usr/local/android/ffmpeg-x86_64"
envvar_latest="FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST" envvar_latest="FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST"
envvar_nightly1="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY1" envvar_nightly1="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY1"
envvar_nightly2="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY2" envvar_nightly2="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY2"
envvar_preview="FFMPEG_DIR_ANDROID_X86_64_NDK_PREVIEW" envvar_preview="FFMPEG_DIR_ANDROID_X86_64_NDK_PREVIEW"
elif [ "$os" == "android-arm32" ]; then elif [ "$os" == "android-arm32" ]; then
target_arch=arm32
target_dir="/usr/local/android/ffmpeg-arm32" target_dir="/usr/local/android/ffmpeg-arm32"
envvar_latest="FFMPEG_DIR_ANDROID_ARM32_NDK_LATEST" envvar_latest="FFMPEG_DIR_ANDROID_ARM32_NDK_LATEST"
envvar_nightly1="FFMPEG_DIR_ANDROID_ARM32_NDK_NIGHTLY1" envvar_nightly1="FFMPEG_DIR_ANDROID_ARM32_NDK_NIGHTLY1"
envvar_nightly2="FFMPEG_DIR_ANDROID_ARM32_NDK_NIGHTLY2" envvar_nightly2="FFMPEG_DIR_ANDROID_ARM32_NDK_NIGHTLY2"
envvar_preview="FFMPEG_DIR_ANDROID_ARM32_NDK_PREVIEW" envvar_preview="FFMPEG_DIR_ANDROID_ARM32_NDK_PREVIEW"
elif [ "$os" == "android-arm64" ]; then elif [ "$os" == "android-arm64" ]; then
target_arch=arm64
target_dir="/usr/local/android/ffmpeg-arm64" target_dir="/usr/local/android/ffmpeg-arm64"
envvar_latest="FFMPEG_DIR_ANDROID_ARM64_NDK_LATEST" envvar_latest="FFMPEG_DIR_ANDROID_ARM64_NDK_LATEST"
envvar_nightly1="FFMPEG_DIR_ANDROID_ARM64_NDK_NIGHTLY1" envvar_nightly1="FFMPEG_DIR_ANDROID_ARM64_NDK_NIGHTLY1"
@@ -166,26 +165,26 @@ fi
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_LATEST" assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_LATEST"
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_LATEST" assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_LATEST"
build_ffmpeg_android "$target_arch" "$target_dir/latest" "$ANDROID_NDK_ROOT_LATEST" "$OPENSSL_ANDROID_HOME_LATEST" build_ffmpeg_android "$target_dir/latest" "$ANDROID_NDK_ROOT_LATEST" "$OPENSSL_ANDROID_HOME_LATEST"
set_ffmpeg_dir_env_var "$envvar_latest" "$target_dir/latest" set_ffmpeg_dir_env_var "$envvar_latest" "$target_dir/latest"
if [ "${ANDROID_NDK_ROOT_PREVIEW}" ]; then if [ "${ANDROID_NDK_ROOT_PREVIEW}" ]; then
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_PREVIEW" assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_PREVIEW"
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_PREVIEW" assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_PREVIEW"
build_ffmpeg_android "$target_arch" "$target_dir/preview" "$ANDROID_NDK_ROOT_PREVIEW" "$OPENSSL_ANDROID_HOME_PREVIEW" build_ffmpeg_android "$target_dir/preview" "$ANDROID_NDK_ROOT_PREVIEW" "$OPENSSL_ANDROID_HOME_PREVIEW"
set_ffmpeg_dir_env_var "$envvar_preview" "$target_dir/preview" set_ffmpeg_dir_env_var "$envvar_preview" "$target_dir/preview"
fi fi
if [ "${ANDROID_NDK_ROOT_NIGHTLY1}" ]; then if [ "${ANDROID_NDK_ROOT_NIGHTLY1}" ]; then
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY1" assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY1"
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY1" assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY1"
build_ffmpeg_android "$target_arch" "$target_dir/nightly1" "$ANDROID_NDK_ROOT_NIGHTLY1" "$OPENSSL_ANDROID_HOME_NIGHTLY1" build_ffmpeg_android "$target_dir/nightly1" "$ANDROID_NDK_ROOT_NIGHTLY1" "$OPENSSL_ANDROID_HOME_NIGHTLY1"
set_ffmpeg_dir_env_var "$envvar_nightly1" "$target_dir/nightly1" set_ffmpeg_dir_env_var "$envvar_nightly1" "$target_dir/nightly1"
fi fi
if [ "${ANDROID_NDK_ROOT_NIGHTLY2}" ]; then if [ "${ANDROID_NDK_ROOT_NIGHTLY2}" ]; then
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY2" assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY2"
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY2" assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY2"
build_ffmpeg_android "$target_arch" "$target_dir/nightly2" "$ANDROID_NDK_ROOT_NIGHTLY2" "$OPENSSL_ANDROID_HOME_NIGHTLY2" build_ffmpeg_android "$target_dir/nightly2" "$ANDROID_NDK_ROOT_NIGHTLY2" "$OPENSSL_ANDROID_HOME_NIGHTLY2"
set_ffmpeg_dir_env_var "$envvar_nightly2" "$target_dir/nightly2" set_ffmpeg_dir_env_var "$envvar_nightly2" "$target_dir/nightly2"
fi fi