Skip to content

Commit b851ca6

Browse files
committed
libavif: simplify install_libavif.sh
1 parent 616f70b commit b851ca6

File tree

4 files changed

+50
-17
lines changed

4 files changed

+50
-17
lines changed

.ci/install.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ python3 -m pip install -U pytest-cov
3131
python3 -m pip install -U pytest-timeout
3232
python3 -m pip install pyroma
3333
python3 -m pip install test-image-results
34-
python3 -m pip install meson
34+
3535
# TODO Remove condition when numpy supports 3.10
3636
if ! [ "$GHA_PYTHON_VERSION" == "3.10-dev" ]; then python3 -m pip install numpy ; fi
3737

.github/workflows/macos-install.sh

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
set -e
44

5-
brew install libtiff libjpeg openjpeg libimagequant webp little-cms2 freetype openblas libraqm cmake nasm ninja meson
5+
brew install \
6+
libtiff libjpeg openjpeg libimagequant webp little-cms2 freetype openblas \
7+
libraqm dav1d aom rav1e
68

79
PYTHONOPTIMIZE=0 python3 -m pip install cffi
810
python3 -m pip install coverage

depends/install_libavif.sh

+45-13
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ else
1111
MAKE_INSTALL=(sudo make install)
1212
fi
1313

14+
PKGCONFIG=${PKGCONFIG:-pkg-config}
15+
1416
export CFLAGS="-fPIC -O3 $CFLAGS"
1517
export CXXFLAGS="-fPIC -O3 $CXXFLAGS"
1618

@@ -19,24 +21,54 @@ curl -sLo - \
1921
| tar Czxf . -
2022
pushd libavif-$LIBAVIF_VERSION
2123

22-
cd ext
23-
bash libyuv.cmd
24-
bash aom.cmd
25-
# dav1d needs to be compiled with -Denable_avx512=false to accomodate
26-
# older nasm on some systems
27-
perl -pi -e 's/^meson /meson -Denable_avx512=false /g' dav1d.cmd
28-
bash dav1d.cmd
29-
cd ..
24+
HAS_DECODER=0
25+
HAS_ENCODER=0
26+
27+
if $PKGCONFIG --exists dav1d; then
28+
LIBAVIF_CMAKE_FLAGS+=(-DAVIF_CODEC_DAV1D=ON)
29+
HAS_DECODER=1
30+
fi
31+
32+
if $PKGCONFIG --exists rav1e; then
33+
LIBAVIF_CMAKE_FLAGS+=(-DAVIF_CODEC_RAV1E=ON)
34+
HAS_ENCODER=1
35+
fi
36+
37+
if $PKGCONFIG --exists SvtAv1Enc; then
38+
LIBAVIF_CMAKE_FLAGS+=(-DAVIF_CODEC_SVT=ON)
39+
HAS_ENCODER=1
40+
fi
41+
42+
if $PKGCONFIG --exists libgav1; then
43+
LIBAVIF_CMAKE_FLAGS+=(-DAVIF_CODEC_LIBGAV1=ON)
44+
HAS_DECODER=1
45+
fi
46+
47+
if $PKGCONFIG --exists aom; then
48+
LIBAVIF_CMAKE_FLAGS+=(-DAVIF_CODEC_AOM=ON)
49+
HAS_ENCODER=1
50+
HAS_DECODER=1
51+
fi
52+
53+
if [ "$HAS_ENCODER" != 1 ] || [ "$HAS_DECODER" != 1 ]; then
54+
pushd ext > /dev/null
55+
bash aom.cmd
56+
popd > /dev/null
57+
LIBAVIF_CMAKE_FLAGS+=(-DAVIF_CODEC_AOM=ON -DAVIF_LOCAL_AOM=ON)
58+
fi
59+
60+
if uname -s | grep -q Darwin; then
61+
# Prevent cmake from using @rpath in install id, so that delocate can
62+
# find and bundle the libavif dylib
63+
LIBAVIF_CMAKE_FLAGS+=("-DCMAKE_INSTALL_NAME_DIR=$PREFIX/lib" -DCMAKE_MACOSX_RPATH=OFF)
64+
fi
3065

3166
mkdir build
3267
cd build
3368
cmake .. \
3469
-DCMAKE_INSTALL_PREFIX=$PREFIX \
35-
-DAVIF_CODEC_AOM=ON \
36-
-DAVIF_LOCAL_AOM=ON \
37-
-DAVIF_CODEC_DAV1D=ON \
38-
-DAVIF_LOCAL_DAV1D=ON \
39-
-DAVIF_LOCAL_LIBYUV=ON
70+
-DCMAKE_BUILD_TYPE=Release \
71+
"${LIBAVIF_CMAKE_FLAGS[@]}"
4072
make && "${MAKE_INSTALL[@]}"
4173
cd ..
4274

docs/installation.rst

+1-2
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ Then see ``depends/install_raqm_cmake.sh`` to install libraqm.
306306

307307
To install libavif on macOS use Homebrew to install its build dependencies::
308308

309-
brew install nasm ninja meson cmake
309+
brew install aom dav1d rav1e
310310

311311
Then see ``depends/install_libavif.sh`` to install libavif.
312312

@@ -411,7 +411,6 @@ See ``depends/install_raqm.sh`` to install libraqm.
411411
Build prerequisites for libavif on Ubuntu are installed with::
412412

413413
sudo apt-get install cmake ninja-build nasm
414-
sudo python3 -m pip install meson
415414

416415
Then see ``depends/install_libavif.sh`` to build and install libavif.
417416

0 commit comments

Comments
 (0)