From c3c0ccd171479f2ef7f4278b4c91417401fad191 Mon Sep 17 00:00:00 2001 From: hanbowen Date: Mon, 20 Jun 2022 16:02:37 +0800 Subject: [PATCH] add mbedtls support --- scripts/ffmpeg/build.sh | 4 ++++ scripts/mbedtls/android.cmake | 9 +++++++++ scripts/mbedtls/build.sh | 19 +++++++++++++++++++ scripts/mbedtls/download.sh | 9 +++++++++ scripts/parse-arguments.sh | 6 ++++++ 5 files changed, 47 insertions(+) create mode 100644 scripts/mbedtls/android.cmake create mode 100755 scripts/mbedtls/build.sh create mode 100755 scripts/mbedtls/download.sh diff --git a/scripts/ffmpeg/build.sh b/scripts/ffmpeg/build.sh index 18f7b29..49b66d0 100755 --- a/scripts/ffmpeg/build.sh +++ b/scripts/ffmpeg/build.sh @@ -14,6 +14,10 @@ if [ "$FFMPEG_GPL_ENABLED" = true ] ; then EXTRA_BUILD_CONFIGURATION_FLAGS="$EXTRA_BUILD_CONFIGURATION_FLAGS --enable-gpl" fi +if [ "$FFMPEG_MBEDTLS_ENABLED" = true ] ; then +EXTRA_BUILD_CONFIGURATION_FLAGS="$EXTRA_BUILD_CONFIGURATION_FLAGS --enable-protocol=https --enable-version3" +fi + # Preparing flags for enabling requested libraries ADDITIONAL_COMPONENTS= for LIBARY_NAME in ${FFMPEG_EXTERNAL_LIBRARIES[@]} diff --git a/scripts/mbedtls/android.cmake b/scripts/mbedtls/android.cmake new file mode 100644 index 0000000..6e46fc4 --- /dev/null +++ b/scripts/mbedtls/android.cmake @@ -0,0 +1,9 @@ +# Enable NEON for all ARM processors +set(ANDROID_ARM_NEON TRUE) + +# By including this file all necessary variables that point to compiler, linker, etc. +# will be setup. Well, almost all. +# Two variables have to be set before this line though: +# ANDROID_PLATOFORM - the API level to compile against (number) +# ANDROID_ABI - the ABI of the target platform +include("$ENV{ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake") \ No newline at end of file diff --git a/scripts/mbedtls/build.sh b/scripts/mbedtls/build.sh new file mode 100755 index 0000000..5f5be57 --- /dev/null +++ b/scripts/mbedtls/build.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +CMAKE_BUILD_DIR=mbedtls_build_${ANDROID_ABI} +# mbedtls authors park their source in a directory named mbedtls-${MBEDTLS_VERSION} +# instead of root directory +cd mbedtls-${MBEDTLS_VERSION} +rm -rf ${CMAKE_BUILD_DIR} +mkdir ${CMAKE_BUILD_DIR} +cd ${CMAKE_BUILD_DIR} + +${CMAKE_EXECUTABLE} .. \ + -DANDROID_PLATFORM=${ANDROID_PLATFORM} \ + -DANDROID_ABI=${ANDROID_ABI} \ + -DCMAKE_TOOLCHAIN_FILE=${SCRIPTS_DIR}/mbedtls/android.cmake \ + -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \ + -DENABLE_TESTING=0 + +${MAKE_EXECUTABLE} -j${HOST_NPROC} +${MAKE_EXECUTABLE} install diff --git a/scripts/mbedtls/download.sh b/scripts/mbedtls/download.sh new file mode 100755 index 0000000..f2ca614 --- /dev/null +++ b/scripts/mbedtls/download.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +source ${SCRIPTS_DIR}/common-functions.sh + +export MBEDTLS_VERSION=2.28.0 +downloadTarArchive \ + "mbedtls" \ + "https://github.com/Mbed-TLS/mbedtls/archive/refs/tags/v${MBEDTLS_VERSION}.tar.gz" \ + true \ No newline at end of file diff --git a/scripts/parse-arguments.sh b/scripts/parse-arguments.sh index 3d21a47..79be0ee 100755 --- a/scripts/parse-arguments.sh +++ b/scripts/parse-arguments.sh @@ -12,6 +12,7 @@ SOURCE_TYPE=TAR SOURCE_VALUE=5.0.1 EXTERNAL_LIBRARIES=() FFMPEG_GPL_ENABLED=false +FFMPEG_MBEDTLS_ENABLED=false # All FREE libraries that are supported SUPPORTED_LIBRARIES_FREE=( @@ -25,6 +26,7 @@ SUPPORTED_LIBRARIES_FREE=( "libwebp" "libfreetype" "libfribidi" + "mbedtls" ) # All GPL libraries that are supported @@ -111,6 +113,10 @@ for argument in "$@"; do EXTERNAL_LIBRARIES+=("libx264") FFMPEG_GPL_ENABLED=true ;; + --enable-mbedtls | -mbedtls) + EXTERNAL_LIBRARIES+=("mbedtls") + FFMPEG_MBEDTLS_ENABLED=true + ;; --enable-all-free | -all-free) EXTERNAL_LIBRARIES+=" ${SUPPORTED_LIBRARIES_FREE[@]}" ;;