@@ -39,8 +39,8 @@ ARCHIVE_SDIR=pillow-depends-main
3939# Package versions for fresh source builds
4040FREETYPE_VERSION=2.13.3
4141HARFBUZZ_VERSION=11.2.1
42- LIBPNG_VERSION=1.6.48
43- JPEGTURBO_VERSION=3.1.0
42+ LIBPNG_VERSION=1.6.49
43+ JPEGTURBO_VERSION=3.1.1
4444OPENJPEG_VERSION=2.5.3
4545XZ_VERSION=5.8.1
4646TIFF_VERSION=4.7.0
@@ -51,6 +51,7 @@ LIBWEBP_VERSION=1.5.0
5151BZIP2_VERSION=1.0.8
5252LIBXCB_VERSION=1.17.0
5353BROTLI_VERSION=1.1.0
54+ LIBAVIF_VERSION=1.3.0
5455
5556function build_pkg_config {
5657 if [ -e pkg-config-stamp ]; then return ; fi
@@ -98,6 +99,59 @@ function build_harfbuzz {
9899 touch harfbuzz-stamp
99100}
100101
102+ function build_libavif {
103+ if [ -e libavif-stamp ]; then return ; fi
104+
105+ python3 -m pip install meson ninja
106+
107+ if [[ " $PLAT " == " x86_64" ]] || [ -n " $SANITIZER " ]; then
108+ build_simple nasm 2.16.03 https://www.nasm.us/pub/nasm/releasebuilds/2.16.03
109+ fi
110+
111+ local build_type=MinSizeRel
112+ local lto=ON
113+
114+ local libavif_cmake_flags
115+
116+ if [ -n " $IS_MACOS " ]; then
117+ lto=OFF
118+ libavif_cmake_flags=(
119+ -DCMAKE_C_FLAGS_MINSIZEREL=" -Oz -DNDEBUG -flto" \
120+ -DCMAKE_CXX_FLAGS_MINSIZEREL=" -Oz -DNDEBUG -flto" \
121+ -DCMAKE_SHARED_LINKER_FLAGS_INIT=" -Wl,-S,-x,-dead_strip_dylibs" \
122+ )
123+ else
124+ if [[ " $MB_ML_VER " == 2014 ]] && [[ " $PLAT " == " x86_64" ]]; then
125+ build_type=Release
126+ fi
127+ libavif_cmake_flags=(-DCMAKE_SHARED_LINKER_FLAGS_INIT=" -Wl,--strip-all,-z,relro,-z,now" )
128+ fi
129+
130+ local out_dir=$( fetch_unpack https://github.com/AOMediaCodec/libavif/archive/refs/tags/v$LIBAVIF_VERSION .tar.gz libavif-$LIBAVIF_VERSION .tar.gz)
131+ # CONFIG_AV1_HIGHBITDEPTH=0 is a flag for libaom (included as a subproject
132+ # of libavif) that disables support for encoding high bit depth images.
133+ (cd $out_dir \
134+ && cmake \
135+ -DCMAKE_INSTALL_PREFIX=$BUILD_PREFIX \
136+ -DCMAKE_INSTALL_LIBDIR=$BUILD_PREFIX /lib \
137+ -DCMAKE_INSTALL_NAME_DIR=$BUILD_PREFIX /lib \
138+ -DBUILD_SHARED_LIBS=ON \
139+ -DAVIF_LIBSHARPYUV=LOCAL \
140+ -DAVIF_LIBYUV=LOCAL \
141+ -DAVIF_CODEC_AOM=LOCAL \
142+ -DCONFIG_AV1_HIGHBITDEPTH=0 \
143+ -DAVIF_CODEC_AOM_DECODE=OFF \
144+ -DAVIF_CODEC_DAV1D=LOCAL \
145+ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=$lto \
146+ -DCMAKE_C_VISIBILITY_PRESET=hidden \
147+ -DCMAKE_CXX_VISIBILITY_PRESET=hidden \
148+ -DCMAKE_BUILD_TYPE=$build_type \
149+ " ${libavif_cmake_flags[@]} " \
150+ . \
151+ && make install)
152+ touch libavif-stamp
153+ }
154+
101155function build {
102156 build_xz
103157 if [ -z " $IS_ALPINE " ] && [ -z " $SANITIZER " ] && [ -z " $IS_MACOS " ]; then
@@ -132,6 +186,7 @@ function build {
132186 build_tiff
133187 fi
134188
189+ build_libavif
135190 build_libpng
136191 build_lcms2
137192 build_openjpeg
0 commit comments