From 151c0dd58f7529ec255e0def0850f5859df0dadb Mon Sep 17 00:00:00 2001 From: Artem Dyomin Date: Mon, 28 Oct 2024 21:54:12 +0100 Subject: [PATCH] Cleanup in install-ffmpeg-android.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Non-functional changes: * fix alignment * add the keyword 'local' to local function variables Pick-to: 6.8 6.9 Change-Id: I28639d28c7211809e52f118c1612db52f8954286 Reviewed-by: Jøger Hansegård Reviewed-by: Pavel Dubsky --- .../common/unix/install-ffmpeg-android.sh | 145 +++++++++--------- 1 file changed, 76 insertions(+), 69 deletions(-) diff --git a/coin/provisioning/common/unix/install-ffmpeg-android.sh b/coin/provisioning/common/unix/install-ffmpeg-android.sh index d96b83af..c4926305 100755 --- a/coin/provisioning/common/unix/install-ffmpeg-android.sh +++ b/coin/provisioning/common/unix/install-ffmpeg-android.sh @@ -9,97 +9,104 @@ source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh" os="$1" build_type=$(get_ffmpeg_build_type) -target_dir="$HOME" ffmpeg_source_dir=$(download_ffmpeg) build_ffmpeg_android() { + local target_arch=$1 + local target_dir=$2 - target_arch=$1 - target_dir=$2 + sudo mkdir -p "$target_dir" - sudo mkdir -p "$target_dir" + local openssl_include="$OPENSSL_ANDROID_HOME_DEFAULT/include" + local openssl_libs + local libs_prefix + local target_cpu + local target_toolchain_arch - openssl_include="$OPENSSL_ANDROID_HOME_DEFAULT/include" - openssl_libs="" - libs_prefix="" - if [ "$target_arch" == "x86_64" ]; then - target_toolchain_arch="x86_64-linux-android" - target_arch=x86_64 - target_cpu=x86-64 - openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/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_DEFAULT/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_DEFAULT/arm64-v8a" - libs_prefix="_arm64-v8a" - fi + if [ "$target_arch" == "x86_64" ]; then + target_toolchain_arch="x86_64-linux-android" + target_arch=x86_64 + target_cpu=x86-64 + openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/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_DEFAULT/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_DEFAULT/arm64-v8a" + libs_prefix="_arm64-v8a" + fi - ln -Ffs "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so" - ln -Ffs "${openssl_libs}/libssl_3.so" "${openssl_libs}/libssl.so" + ln -Ffs "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so" + ln -Ffs "${openssl_libs}/libssl_3.so" "${openssl_libs}/libssl.so" - api_version=24 + local api_version=24 - ndk_root=$ANDROID_NDK_ROOT_DEFAULT - if uname -a |grep -q "Darwin"; then - ndk_host=darwin-x86_64 - else - ndk_host=linux-x86_64 - fi + local ndk_root=$ANDROID_NDK_ROOT_DEFAULT + local ndk_host + if uname -a |grep -q "Darwin"; then + ndk_host=darwin-x86_64 + else + ndk_host=linux-x86_64 + fi - toolchain=${ndk_root}/toolchains/llvm/prebuilt/${ndk_host} - toolchain_bin=${toolchain}/bin - sysroot=${toolchain}/sysroot - cxx=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang++ - cc=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang - ar=${toolchain_bin}/llvm-ar - ranlib=${toolchain_bin}/llvm-ranlib + local toolchain=${ndk_root}/toolchains/llvm/prebuilt/${ndk_host} + local toolchain_bin=${toolchain}/bin + local sysroot=${toolchain}/sysroot + local cxx=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang++ + local cc=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang + local ar=${toolchain_bin}/llvm-ar + local ranlib=${toolchain_bin}/llvm-ranlib + local ffmpeg_config_options - ffmpeg_config_options=$(get_ffmpeg_config_options $build_type) - ffmpeg_config_options+=" --enable-cross-compile --target-os=android --enable-jni --enable-mediacodec --enable-openssl --enable-pthreads --enable-neon --disable-asm --disable-indev=android_camera" - ffmpeg_config_options+=" --arch=$target_arch --cpu=${target_cpu} --sysroot=${sysroot} --sysinclude=${sysroot}/usr/include/" - ffmpeg_config_options+=" --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib}" - ffmpeg_config_options+=" --extra-cflags=-I${openssl_include} --extra-ldflags=-L${openssl_libs}" + ffmpeg_config_options=$(get_ffmpeg_config_options $build_type) + ffmpeg_config_options+=" --enable-cross-compile --target-os=android --enable-jni --enable-mediacodec --enable-openssl --enable-pthreads --enable-neon --disable-asm --disable-indev=android_camera" + ffmpeg_config_options+=" --arch=$target_arch --cpu=${target_cpu} --sysroot=${sysroot} --sysinclude=${sysroot}/usr/include/" + ffmpeg_config_options+=" --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib}" + ffmpeg_config_options+=" --extra-cflags=-I${openssl_include} --extra-ldflags=-L${openssl_libs}" - local build_dir="$ffmpeg_source_dir/build/$target_arch" - sudo mkdir -p "$build_dir" - pushd "$build_dir" + local build_dir="$ffmpeg_source_dir/build_android/$target_arch" + mkdir -p "$build_dir" + pushd "$build_dir" - # shellcheck disable=SC2086 - sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$target_dir" + # shellcheck disable=SC2086 + sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$target_dir" + # shellcheck disable= - sudo make install -j4 + sudo make install -j4 - popd + popd - rm -f "${openssl_libs}/libcrypto.so" - rm -f "${openssl_libs}/libssl.so" + rm -f "${openssl_libs}/libcrypto.so" + rm -f "${openssl_libs}/libssl.so" - if [[ "$build_type" == "shared" ]]; then - fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh" - sudo "${fix_dependencies}" "${target_dir}" "${libs_prefix}" "no" - fi + if [[ "$build_type" == "shared" ]]; then + local fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh" + sudo "${fix_dependencies}" "${target_dir}" "${libs_prefix}" "no" + fi } if [ "$os" == "android-x86" ]; then - target_arch=x86 - target_dir="/usr/local/android/ffmpeg-x86" - envvar="FFMPEG_DIR_ANDROID_X86" + target_arch=x86 + target_dir="/usr/local/android/ffmpeg-x86" + envvar="FFMPEG_DIR_ANDROID_X86" elif [ "$os" == "android-x86_64" ]; then - target_arch=x86_64 - target_dir="/usr/local/android/ffmpeg-x86_64" - envvar="FFMPEG_DIR_ANDROID_X86_64" + target_arch=x86_64 + target_dir="/usr/local/android/ffmpeg-x86_64" + envvar="FFMPEG_DIR_ANDROID_X86_64" elif [ "$os" == "android-arm64" ]; then - target_arch=arm64 - target_dir="/usr/local/android/ffmpeg-arm64" - envvar="FFMPEG_DIR_ANDROID_ARM64" + target_arch=arm64 + target_dir="/usr/local/android/ffmpeg-arm64" + envvar="FFMPEG_DIR_ANDROID_ARM64" +else + >&2 echo "Unhandled android os param: $os" + exit 1 fi build_ffmpeg_android "$target_arch" "$target_dir"