Compare commits

...

81 Commits

Author SHA1 Message Date
Javernaut 731ef765a5 Using mbedtls 3.4.1 2 years ago
Javernaut f90250bc85 Merge branch 'update/meson_1.2.1' into development 2 years ago
Javernaut 0d35a51b52 Merge branch 'update/libfribidi_1.0.13' into development 2 years ago
Javernaut dc21b56267 Merge branch 'update/libfreetype_2.13.2' into development 2 years ago
Javernaut 03901b3227 Merge branch 'update/libaom_3.6.1' into development 2 years ago
Javernaut 0e60bb964a Using meson 1.2.1 2 years ago
Javernaut f4a77127bb Using libfribidi 1.0.13 2 years ago
Javernaut dc37813a00 Using libaom 3.6.1 2 years ago
Javernaut 664279ecb3 Using libfreetype 2.13.2 2 years ago
Javernaut 9f0a1e7c32 Using libdav1d 1.2.1 2 years ago
Javernaut 89540c33c0 Updating Android SDK tools 2 years ago
Javernaut a3d8daadb7 Updating libdav1d to 1.2.0 2 years ago
Javernaut ef5cb2eb2e Updating mbedtls to 3.4.0 2 years ago
Javernaut d7826ae29f Using FFmpeg 6.0 2 years ago
Javernaut cb13b75e29 Using Meson 1.0.1 2 years ago
Javernaut e891a8bc5e Updating libdav1d to 1.1.0 2 years ago
Javernaut 9c31a38a4c Using libvpx 1.13.0 2 years ago
Javernaut 4883ac99cb Merge branch 'test/mbedtls_3.3.0' into development 2 years ago
Javernaut 8038d8cd71 Merge branch 'test/libwebp_1.3.0' into development 2 years ago
Javernaut 8e61c05498 Merge branch 'test/libwavpack_5.6.0' into development 2 years ago
Javernaut 94c2711eac Merge branch 'test/libfreetype_2.13.0' into development 2 years ago
Javernaut a052e9ce84 Using libfreetype 2.13.0 2 years ago
Javernaut d164727916 Using libbluray 1.3.4 2 years ago
Javernaut 5a5f3e779f Using mbedtls 3.3.0 2 years ago
Javernaut e384e2c67c Using libwebp 1.3.0 2 years ago
Javernaut 1cc288cf5d Using libwavpack 5.6.0 2 years ago
Javernaut 8940755a72 Using libaom 3.6.0 2 years ago
Javernaut ca82e70db1 Merge branch 'test/ndk_r25c' into development 2 years ago
Javernaut 43dc062b3d Using Android SDK tools v9.0 2 years ago
Javernaut 21a4f6e894 Using Android NDK r25c on CI 2 years ago
Javernaut f8a84f7a61 Using Meson 1.0.0 2 years ago
Javernaut cd3a814c64 New URL for libfreetype getting 2 years ago
Javernaut cee0292cbd Updating Dockerfile to include git and enforce linux/amd64 as the only currently supported platform 2 years ago
Javernaut fb32ae8959 Using FFmpeg 5.1.2 by default 3 years ago
Javernaut fb5522592b Updating Docker image to use Ubuntu 22.04 and Android NDK r25 3 years ago
Javernaut 4efafd74b9 Using Meson 0.63.0 on CI 3 years ago
Javernaut 3562a2811c Using CMake 3.22.1 from Android SDK 3 years ago
Javernaut d2d298ec93 Using Ubuntu 22.04 for CI 3 years ago
Javernaut 68f1c4b245 Merge branch 'test/mbedtls_3_1_2' into development 3 years ago
Javernaut d9f2bd20f1 Merge branch 'test/x264_baee400f' into development 3 years ago
Javernaut 73c06aadac Merge branch 'test/webp_1_2_3' into development 3 years ago
Javernaut da5f440eb8 Merge branch 'test/vpx_1_12_0' into development 3 years ago
Javernaut f8731e549d Merge branch 'test/speex_1_2_1' into development 3 years ago
Javernaut aeca4c31fe Merge branch 'test/treetype_2_12_1' into development 3 years ago
Javernaut 9e9290b094 Merge branch 'test/fribidi_1_0_12' into development 3 years ago
Javernaut 9af500f4ea Merge branch 'test/aom_3_4_0' into development 3 years ago
Javernaut 8b53f468d7 Updating mbedtls to 3.2.1 3 years ago
Javernaut 01a1922f60 Updating libx264 to baee400f 3 years ago
Javernaut 3cec77550c Updating libwebp to 1.2.3 3 years ago
Javernaut 9b86a5061b Updating libwavpack to 5.5.0 3 years ago
Javernaut 483800bc8c Updating libvpx to 1.12.0 3 years ago
Javernaut 4642323859 Updating libspeex to 1.2.1 3 years ago
Javernaut 77e699ca13 Updating libfribidi to 1.0.12 3 years ago
Javernaut 8b8e7e6010 Updating libfreetype to 2.12.1 3 years ago
Javernaut 2a68c4a3bc Updating libaom to 3.4.0 3 years ago
Javernaut 90b7c50e40 Disabling vulkan explicitly 3 years ago
Javernaut ad5396932d Using FFmpeg 5.1 as default 3 years ago
Oleksandr Berezhnyi da8bffde33
Merge pull request #64 from bugparty/mbedtls 3 years ago
hanbowen f2197adbca Remove FFMPEG_MBEDTLS_ENABLED 3 years ago
hanbowen 4256437638 drop nessary custom android.cmake 3 years ago
Javernaut a42b10af8a Correcting the full flag for libwebp 3 years ago
Oleksandr Berezhnyi 1b1d273429
Merge pull request #65 from Javernaut/bluray/optimization 3 years ago
Javernaut 4350f6f230 libbluray build script optimization (2) 3 years ago
Javernaut cf2d5927e7 libbluray build script optimization 3 years ago
Javernaut 581479ac9e Fixing webp compilation again 3 years ago
hanbowen 9a23b15a1e fix ci 3 years ago
hanbowen a0a411e5de fix prase-arguments.sh grammer error 3 years ago
ClayM0re de9ca7e77e
Merge branch 'development' into mbedtls 3 years ago
Oleksandr Berezhnyi 8ab147616b
Merge pull request #63 from bugparty/add_libbluray 3 years ago
hanbowen c3c0ccd171 add mbedtls support 3 years ago
hanbowen 6bb409de6a Merge remote-tracking branch 'origin/add_libbluray' into add_libbluray 3 years ago
hanbowen eb28100d4b rename short argument libbluray to bluray 3 years ago
hanbowen cd84da9f65 add libbluray 3 years ago
Javernaut 0738f74153 Fixing webp compilation on macos 3 years ago
Javernaut 89631fa511 Trying actions/checkout@v3 3 years ago
Javernaut 8b496b2678 Merge branch 'test/ffmpeg_5.0.1' into development 3 years ago
Javernaut 059605687a Using llvm-as instead of GAS 3 years ago
hanbowen a2859f9ce0 rename short argument libbluray to bluray 3 years ago
hanbowen 56e82f9ed0 add libbluray 3 years ago
Javernaut e1f5c17f76 Update default FFmpeg version to 5.0.1 3 years ago
Oleksandr Berezhnyi f90b50e4ae
Update LICENSE.txt 3 years ago
  1. 6
      .github/workflows/compilability_check.yml
  2. 2
      LICENSE.txt
  3. 2
      README.md
  4. 5
      scripts/export-build-variables.sh
  5. 2
      scripts/export-host-variables.sh
  6. 5
      scripts/ffmpeg/build.sh
  7. 2
      scripts/libaom/android.cmake
  8. 2
      scripts/libaom/download.sh
  9. 22
      scripts/libbluray/build.sh
  10. 10
      scripts/libbluray/download.sh
  11. 2
      scripts/libdav1d/download.sh
  12. 4
      scripts/libfreetype/download.sh
  13. 2
      scripts/libfribidi/download.sh
  14. 2
      scripts/libspeex/download.sh
  15. 2
      scripts/libvpx/download.sh
  16. 2
      scripts/libwavpack/download.sh
  17. 12
      scripts/libwebp/build.sh
  18. 2
      scripts/libwebp/download.sh
  19. 4
      scripts/libx264/download.sh
  20. 21
      scripts/mbedtls/build.sh
  21. 9
      scripts/mbedtls/download.sh
  22. 12
      scripts/parse-arguments.sh
  23. 13
      tools/docker/Dockerfile

@ -2,17 +2,17 @@ name: Compilability check
on: [push, pull_request] on: [push, pull_request]
jobs: jobs:
build: build:
runs-on: ubuntu-20.04 runs-on: ubuntu-22.04
strategy: strategy:
matrix: matrix:
abi: [ "armeabi-v7a", "arm64-v8a", "x86", "x86_64" ] abi: [ "armeabi-v7a", "arm64-v8a", "x86", "x86_64" ]
fail-fast: false fail-fast: false
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v3
- name: Setup the environment - name: Setup the environment
run: | run: |
sudo pip3 install meson==0.58.2 sudo pip3 install meson==1.2.1
sudo apt-get install nasm ninja-build sudo apt-get install nasm ninja-build
- name: Executing the script - name: Executing the script

@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2021 Alexander Berezhnoi Copyright (c) 2022 Oleksandr Berezhnyi
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

@ -13,7 +13,7 @@ The script also produces `ffmpeg` and `ffprobe` executables that can be used in
The main focus of ffmpeg-android-maker is to prepare shared libraries for seamless integration into an Android project. The script prepares the `output` directory that is meant to be used. And it's not the only thing this project does. The main focus of ffmpeg-android-maker is to prepare shared libraries for seamless integration into an Android project. The script prepares the `output` directory that is meant to be used. And it's not the only thing this project does.
By default this script downloads and builds the FFmpeg **5.0**, but the version can be overridden. By default this script downloads and builds the FFmpeg **6.0**, but the version can be overridden.
The details of how this script is implemented are described in this series of posts: The details of how this script is implemented are described in this series of posts:
* [Part 1](https://proandroiddev.com/a-story-about-ffmpeg-in-android-part-i-compilation-898e4a249422) * [Part 1](https://proandroiddev.com/a-story-about-ffmpeg-in-android-part-i-compilation-898e4a249422)

@ -55,6 +55,7 @@ export CROSS_PREFIX_WITH_PATH=${TOOLCHAIN_PATH}/bin/llvm-
# The FAM_ prefix is used to eliminate passing those values implicitly to build systems # The FAM_ prefix is used to eliminate passing those values implicitly to build systems
export FAM_ADDR2LINE=${CROSS_PREFIX_WITH_PATH}addr2line export FAM_ADDR2LINE=${CROSS_PREFIX_WITH_PATH}addr2line
export FAM_AR=${CROSS_PREFIX_WITH_PATH}ar export FAM_AR=${CROSS_PREFIX_WITH_PATH}ar
export FAM_AS=${CROSS_PREFIX_WITH_PATH}as
export FAM_NM=${CROSS_PREFIX_WITH_PATH}nm export FAM_NM=${CROSS_PREFIX_WITH_PATH}nm
export FAM_OBJCOPY=${CROSS_PREFIX_WITH_PATH}objcopy export FAM_OBJCOPY=${CROSS_PREFIX_WITH_PATH}objcopy
export FAM_OBJDUMP=${CROSS_PREFIX_WITH_PATH}objdump export FAM_OBJDUMP=${CROSS_PREFIX_WITH_PATH}objdump
@ -69,7 +70,6 @@ export TARGET=${TARGET_TRIPLE_MACHINE_CC}-linux-${TARGET_TRIPLE_OS}${ANDROID_PLA
export FAM_CC=${TOOLCHAIN_PATH}/bin/${TARGET}-clang export FAM_CC=${TOOLCHAIN_PATH}/bin/${TARGET}-clang
export FAM_CXX=${FAM_CC}++ export FAM_CXX=${FAM_CC}++
export FAM_LD=${FAM_CC} export FAM_LD=${FAM_CC}
export FAM_AS=${FAM_CC}
# TODO consider abondaning this strategy of defining the name of the clang wrapper # TODO consider abondaning this strategy of defining the name of the clang wrapper
# in favour of just passing -mstackrealign and -fno-addrsig depending on # in favour of just passing -mstackrealign and -fno-addrsig depending on
@ -81,6 +81,9 @@ export FAM_YASM=${TOOLCHAIN_PATH}/bin/yasm
# A variable to which certain dependencies can add -l arguments during build.sh # A variable to which certain dependencies can add -l arguments during build.sh
export FFMPEG_EXTRA_LD_FLAGS= export FFMPEG_EXTRA_LD_FLAGS=
# A variable to which certain dependencies can add addtional arguments during ffmpeg build.sh
export EXTRA_BUILD_CONFIGURATION_FLAGS=
export INSTALL_DIR=${BUILD_DIR_EXTERNAL}/${ANDROID_ABI} export INSTALL_DIR=${BUILD_DIR_EXTERNAL}/${ANDROID_ABI}
# Forcing FFmpeg and its dependencies to look for dependencies # Forcing FFmpeg and its dependencies to look for dependencies

@ -26,7 +26,7 @@ export HOST_TAG=$HOST_TAG
export HOST_NPROC=$HOST_NPROC export HOST_NPROC=$HOST_NPROC
# Using CMake from the Android SDK # Using CMake from the Android SDK
export CMAKE_EXECUTABLE=${ANDROID_SDK_HOME}/cmake/3.10.2.4988404/bin/cmake export CMAKE_EXECUTABLE=${ANDROID_SDK_HOME}/cmake/3.22.1/bin/cmake
# Using Make from the Android SDK # Using Make from the Android SDK
export MAKE_EXECUTABLE=${ANDROID_NDK_HOME}/prebuilt/${HOST_TAG}/bin/make export MAKE_EXECUTABLE=${ANDROID_NDK_HOME}/prebuilt/${HOST_TAG}/bin/make
# Using Build machine's Ninja. It is used for libdav1d building. Needs to be installed # Using Build machine's Ninja. It is used for libdav1d building. Needs to be installed

@ -3,10 +3,10 @@
case $ANDROID_ABI in case $ANDROID_ABI in
x86) x86)
# Disabling assembler optimizations, because they have text relocations # Disabling assembler optimizations, because they have text relocations
EXTRA_BUILD_CONFIGURATION_FLAGS=--disable-asm EXTRA_BUILD_CONFIGURATION_FLAGS="$EXTRA_BUILD_CONFIGURATION_FLAGS --disable-asm"
;; ;;
x86_64) x86_64)
EXTRA_BUILD_CONFIGURATION_FLAGS=--x86asmexe=${FAM_YASM} EXTRA_BUILD_CONFIGURATION_FLAGS="$EXTRA_BUILD_CONFIGURATION_FLAGS --x86asmexe=${FAM_YASM}"
;; ;;
esac esac
@ -43,6 +43,7 @@ DEP_LD_FLAGS="-L${BUILD_DIR_EXTERNAL}/${ANDROID_ABI}/lib $FFMPEG_EXTRA_LD_FLAGS"
--extra-ldflags="$DEP_LD_FLAGS" \ --extra-ldflags="$DEP_LD_FLAGS" \
--enable-shared \ --enable-shared \
--disable-static \ --disable-static \
--disable-vulkan \
--pkg-config=${PKG_CONFIG_EXECUTABLE} \ --pkg-config=${PKG_CONFIG_EXECUTABLE} \
${EXTRA_BUILD_CONFIGURATION_FLAGS} \ ${EXTRA_BUILD_CONFIGURATION_FLAGS} \
$ADDITIONAL_COMPONENTS || exit 1 $ADDITIONAL_COMPONENTS || exit 1

@ -16,7 +16,7 @@ include("$ENV{ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake")
if(DEFINED CMAKE_ASM_NASM_COMPILER) if(DEFINED CMAKE_ASM_NASM_COMPILER)
set(AS_EXECUTABLE ${CMAKE_ASM_NASM_COMPILER}) set(AS_EXECUTABLE ${CMAKE_ASM_NASM_COMPILER})
else() else()
set(AS_EXECUTABLE ${_CMAKE_TOOLCHAIN_PREFIX}as) set(AS_EXECUTABLE ${ANDROID_ASM_COMPILER})
endif() endif()
# AV1 Codec Library doesn't recognise 'i686' as CMAKE_SYSTEM_PROCESSOR # AV1 Codec Library doesn't recognise 'i686' as CMAKE_SYSTEM_PROCESSOR

@ -2,7 +2,7 @@
source ${SCRIPTS_DIR}/common-functions.sh source ${SCRIPTS_DIR}/common-functions.sh
AOM_VERSION=v3.3.0 AOM_VERSION=v3.6.1
downloadTarArchive \ downloadTarArchive \
"libaom" \ "libaom" \

@ -0,0 +1,22 @@
#!/usr/bin/env bash
CC=${FAM_CC} \
AR=${FAM_AR} \
AS=${FAM_AS} \
RANLIB=${FAM_RANLIB} \
./configure \
--prefix=${INSTALL_DIR} \
--host=${TARGET} \
--with-sysroot=${SYSROOT_PATH} \
--disable-shared \
--enable-static \
--disable-examples \
--with-pic \
--without-libxml2 \
--without-freetype \
--without-fontconfig \
--disable-bdjava-jar || exit 1
${MAKE_EXECUTABLE} clean
${MAKE_EXECUTABLE} -j${HOST_NPROC}
${MAKE_EXECUTABLE} install

@ -0,0 +1,10 @@
#!/usr/bin/env bash
source ${SCRIPTS_DIR}/common-functions.sh
LIBBLURAY_VERSION=1.3.4
downloadTarArchive \
"libbluray" \
"https://download.videolan.org/pub/videolan/libbluray/${LIBBLURAY_VERSION}/libbluray-${LIBBLURAY_VERSION}.tar.bz2"

@ -2,7 +2,7 @@
source ${SCRIPTS_DIR}/common-functions.sh source ${SCRIPTS_DIR}/common-functions.sh
DAV1D_VERSION=1.0.0 DAV1D_VERSION=1.2.1
downloadTarArchive \ downloadTarArchive \
"libdav1d" \ "libdav1d" \

@ -2,8 +2,8 @@
source ${SCRIPTS_DIR}/common-functions.sh source ${SCRIPTS_DIR}/common-functions.sh
FREETYPE_VERSION=2.11.1 FREETYPE_VERSION=2.13.2
downloadTarArchive \ downloadTarArchive \
"libfreetype" \ "libfreetype" \
"https://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPE_VERSION}.tar.gz" \ "https://nav.dl.sourceforge.net/project/freetype/freetype2/${FREETYPE_VERSION}/freetype-${FREETYPE_VERSION}.tar.gz"

@ -2,7 +2,7 @@
source ${SCRIPTS_DIR}/common-functions.sh source ${SCRIPTS_DIR}/common-functions.sh
FRIBIDI_VERSION=1.0.11 FRIBIDI_VERSION=1.0.13
downloadTarArchive \ downloadTarArchive \
"libfribidi" \ "libfribidi" \

@ -2,7 +2,7 @@
source ${SCRIPTS_DIR}/common-functions.sh source ${SCRIPTS_DIR}/common-functions.sh
SPEEX_VERSION=1.2.0 SPEEX_VERSION=1.2.1
downloadTarArchive \ downloadTarArchive \
"libspeex" \ "libspeex" \

@ -2,7 +2,7 @@
source ${SCRIPTS_DIR}/common-functions.sh source ${SCRIPTS_DIR}/common-functions.sh
VPX_VERSION=v1.11.0 VPX_VERSION=v1.13.0
downloadTarArchive \ downloadTarArchive \
"libvpx" \ "libvpx" \

@ -2,7 +2,7 @@
source ${SCRIPTS_DIR}/common-functions.sh source ${SCRIPTS_DIR}/common-functions.sh
WAVPACK_VERSION=5.4.0 WAVPACK_VERSION=5.6.0
downloadTarArchive \ downloadTarArchive \
"libwavpack" \ "libwavpack" \

@ -2,10 +2,16 @@
./configure \ ./configure \
--prefix=${INSTALL_DIR} \ --prefix=${INSTALL_DIR} \
--host=${TARGET_TRIPLE_MACHINE_ARCH}-linux-android \ --host=${TARGET} \
--with-sysroot=${SYSROOT_PATH} \ --with-sysroot=${SYSROOT_PATH} \
--target=${TARGET} \ --disable-shared \
CC=${FAM_CC} || exit 1 --enable-static \
--with-pic \
CC=${FAM_CC} \
AR=${FAM_AR} \
RANLIB=${FAM_RANLIB} || exit 1
export FFMPEG_EXTRA_LD_FLAGS="${FFMPEG_EXTRA_LD_FLAGS} -lm"
${MAKE_EXECUTABLE} clean ${MAKE_EXECUTABLE} clean
${MAKE_EXECUTABLE} -j${HOST_NPROC} ${MAKE_EXECUTABLE} -j${HOST_NPROC}

@ -2,7 +2,7 @@
source ${SCRIPTS_DIR}/common-functions.sh source ${SCRIPTS_DIR}/common-functions.sh
WEBP_VERSION=1.2.2 WEBP_VERSION=1.3.0
downloadTarArchive \ downloadTarArchive \
"libwebp" \ "libwebp" \

@ -4,8 +4,8 @@ source ${SCRIPTS_DIR}/common-functions.sh
# Libx264 doesn't have any versioning system. Currently it has 2 branches: master and stable. # Libx264 doesn't have any versioning system. Currently it has 2 branches: master and stable.
# Latest commit in stable branch # Latest commit in stable branch
# Jun 13, 2021 3:43pm GMT+0300 # 01 Jun, 2022
LIBX264_VERSION=5db6aa6cab1b146e07b60cc1736a01f21da01154 LIBX264_VERSION=baee400fa9ced6f5481a728138fed6e867b0ff7f
downloadTarArchive \ downloadTarArchive \
"libx264" \ "libx264" \

@ -0,0 +1,21 @@
#!/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=${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake \
-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
-DENABLE_TESTING=0
${MAKE_EXECUTABLE} -j${HOST_NPROC}
${MAKE_EXECUTABLE} install
export EXTRA_BUILD_CONFIGURATION_FLAGS="$EXTRA_BUILD_CONFIGURATION_FLAGS --enable-protocol=https --enable-version3"

@ -0,0 +1,9 @@
#!/usr/bin/env bash
source ${SCRIPTS_DIR}/common-functions.sh
export MBEDTLS_VERSION=3.4.1
downloadTarArchive \
"mbedtls" \
"https://github.com/Mbed-TLS/mbedtls/archive/refs/tags/v${MBEDTLS_VERSION}.tar.gz" \
true

@ -9,7 +9,7 @@
ABIS_TO_BUILD=() ABIS_TO_BUILD=()
API_LEVEL=19 API_LEVEL=19
SOURCE_TYPE=TAR SOURCE_TYPE=TAR
SOURCE_VALUE=5.0 SOURCE_VALUE=6.0
EXTERNAL_LIBRARIES=() EXTERNAL_LIBRARIES=()
FFMPEG_GPL_ENABLED=false FFMPEG_GPL_ENABLED=false
@ -25,6 +25,8 @@ SUPPORTED_LIBRARIES_FREE=(
"libwebp" "libwebp"
"libfreetype" "libfreetype"
"libfribidi" "libfribidi"
"mbedtls"
"libbluray"
) )
# All GPL libraries that are supported # All GPL libraries that are supported
@ -86,7 +88,7 @@ for argument in "$@"; do
--enable-libopus | -opus) --enable-libopus | -opus)
EXTERNAL_LIBRARIES+=("libopus") EXTERNAL_LIBRARIES+=("libopus")
;; ;;
--enable-webp | -webp) --enable-libwebp | -webp)
EXTERNAL_LIBRARIES+=("libwebp") EXTERNAL_LIBRARIES+=("libwebp")
;; ;;
--enable-libwavpack | -wavpack) --enable-libwavpack | -wavpack)
@ -111,6 +113,12 @@ for argument in "$@"; do
EXTERNAL_LIBRARIES+=("libx264") EXTERNAL_LIBRARIES+=("libx264")
FFMPEG_GPL_ENABLED=true FFMPEG_GPL_ENABLED=true
;; ;;
--enable-mbedtls | -mbedtls)
EXTERNAL_LIBRARIES+=("mbedtls")
;;
--enable-libbluray | -bluray)
EXTERNAL_LIBRARIES+=("libbluray")
;;
--enable-all-free | -all-free) --enable-all-free | -all-free)
EXTERNAL_LIBRARIES+=" ${SUPPORTED_LIBRARIES_FREE[@]}" EXTERNAL_LIBRARIES+=" ${SUPPORTED_LIBRARIES_FREE[@]}"
;; ;;

@ -1,13 +1,13 @@
FROM ubuntu:20.04 FROM --platform=linux/amd64 ubuntu:22.04
# Arguments that can be overridden in 'docker build' command: # Arguments that can be overridden in 'docker build' command:
# Versions of Android SDK and NDK. The CMake is installed via NDK. # Versions of Android SDK and NDK. The CMake is installed via NDK.
ARG VERSION_SDK=6858069 ARG VERSION_SDK=10406996
ARG VERSION_NDK=21.4.7075529 ARG VERSION_NDK=25.2.9519653
ARG VERSION_CMAKE=3.10.2.4988404 ARG VERSION_CMAKE=3.22.1
# Package to install via pip3 # Package to install via pip3
ARG VERSION_MESON=0.58.2 ARG VERSION_MESON=1.2.1
# The HOME variable isn't available for ENV directive (during building an image). # The HOME variable isn't available for ENV directive (during building an image).
# So we define one manually. For alpine and ubuntu it should be '/root' # So we define one manually. For alpine and ubuntu it should be '/root'
@ -18,7 +18,7 @@ ENV ANDROID_SDK_HOME=${HOME_TWIN}/android-sdk
ENV ANDROID_NDK_HOME=${ANDROID_SDK_HOME}/ndk/${VERSION_NDK} ENV ANDROID_NDK_HOME=${ANDROID_SDK_HOME}/ndk/${VERSION_NDK}
# Installing basic software # Installing basic software
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get --allow-releaseinfo-change update && apt-get install -y --no-install-recommends \
python3 \ python3 \
python3-pip \ python3-pip \
python3-setuptools \ python3-setuptools \
@ -32,6 +32,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
nasm \ nasm \
pkg-config \ pkg-config \
make \ make \
git \
&& apt-get clean \ && apt-get clean \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*

Loading…
Cancel
Save