[ENG-867] Remove unnecessary encoders from our FFmpeg bundle (#1061)

* Greatly improve our ffmpeg build

* Remove not needed deps

* Remove libpng from windows ffmpeg build
This commit is contained in:
Vítor Vasconcellos
2023-06-30 01:35:52 -03:00
committed by GitHub
parent 942bf50638
commit f433995de6
33 changed files with 347 additions and 714 deletions

View File

@@ -0,0 +1,24 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/google/brotli.git"
SCRIPT_COMMIT="50ebce107f5b1eb36760c7ec2d4726ec56784373"
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" brotli
cd brotli
mkdir build && cd build
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" \
-DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_SHARED_LIBS=OFF \
-DBROTLI_DISABLE_TESTS=ON \
-DBROTLI_BUNDLED_MODE=OFF \
..
ninja -j"$(nproc)"
ninja install
}

View File

@@ -0,0 +1,25 @@
#!/bin/bash
SCRIPT_REPO="https://git.savannah.gnu.org/git/libiconv.git"
SCRIPT_TAG="v1.17"
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_TAG" libiconv
cd libiconv
retry-tool ./gitsub.sh pull
(unset CC CFLAGS GMAKE && ./autogen.sh)
local myconf=(
--host="$FFBUILD_TOOLCHAIN"
--prefix="$FFBUILD_PREFIX"
--enable-extra-encodings
--disable-shared
--enable-static
--with-pic
)
./configure "${myconf[@]}"
make -j"$(nproc)"
make install
}

View File

@@ -12,13 +12,8 @@ ffbuild_dockerbuild() {
--static
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
export CC="${FFBUILD_CROSS_PREFIX}gcc"
export AR="${FFBUILD_CROSS_PREFIX}ar"
else
echo "Unknown target"
return 255
fi
export CC="${FFBUILD_CROSS_PREFIX}gcc"
export AR="${FFBUILD_CROSS_PREFIX}ar"
./configure "${myconf[@]}"
make -j"$(nproc)"

View File

@@ -10,21 +10,13 @@ ffbuild_dockerbuild() {
./autogen.sh
local myconf=(
--host="$FFBUILD_TOOLCHAIN"
--prefix="$FFBUILD_PREFIX"
--disable-shared
--enable-static
--with-pic
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
)
else
echo "Unknown target"
return 255
fi
./configure "${myconf[@]}"
make -j"$(nproc)"
make install

View File

@@ -1,6 +1,6 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/xz-mirror/xz.git"
SCRIPT_REPO="https://github.com/tukaani-project/xz.git"
SCRIPT_TAG="v5.4.3"
ffbuild_dockerbuild() {
@@ -10,22 +10,22 @@ ffbuild_dockerbuild() {
./autogen.sh --no-po4a --no-doxygen
local myconf=(
--host="$FFBUILD_TOOLCHAIN"
--prefix="$FFBUILD_PREFIX"
--enable-small
--disable-xz
--disable-xzdec
--disable-lzmadec
--disable-lzmainfo
--disable-lzma-links
--disable-scripts
--disable-doc
--disable-symbol-versions
--disable-shared
--enable-static
--with-pic
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
)
else
echo "Unknown target"
return 255
fi
./configure "${myconf[@]}"
make -j"$(nproc)"
make install

View File

@@ -1,16 +0,0 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/google/brotli.git"
SCRIPT_COMMIT="ed1995b6bda19244070ab5d331111f16f67c8054"
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" brotli
cd brotli
mkdir build && cd build
cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=OFF ..
ninja -j"$(nproc)"
ninja install
}

View File

@@ -10,21 +10,13 @@ ffbuild_dockerbuild() {
./autogen.sh
local myconf=(
--host="$FFBUILD_TOOLCHAIN"
--prefix="$FFBUILD_PREFIX"
--disable-shared
--enable-static
--disable-oggtest
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
)
else
echo "Unknown target"
return 255
fi
./configure "${myconf[@]}"
make -j"$(nproc)"
make install

View File

@@ -1,40 +0,0 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/Netflix/vmaf.git"
SCRIPT_COMMIT="5ee0051cd7b1337e033558910c30525d73edfd76"
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" vmaf
cd vmaf
# Kill build of unused and broken tools
echo > libvmaf/tools/meson.build
mkdir build && cd build
local myconf=(
--prefix="$FFBUILD_PREFIX"
--buildtype=release
--default-library=static
-Dbuilt_in_models=true
-Denable_tests=false
-Denable_docs=false
-Denable_avx512=true
-Denable_float=true
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--cross-file=/cross.meson
)
else
echo "Unknown target"
return 255
fi
meson "${myconf[@]}" ../libvmaf
ninja -j"$(nproc)"
ninja install
sed -i 's/Libs.private:/Libs.private: -lstdc++/; t; $ a Libs.private: -lstdc++' "$FFBUILD_PREFIX"/lib/pkgconfig/libvmaf.pc
}

View File

@@ -10,6 +10,7 @@ ffbuild_dockerbuild() {
mkdir build && cd build
local myconf=(
--cross-file=/cross.meson
-Denable_docs=false
-Denable_tools=false
-Denable_tests=false
@@ -19,15 +20,6 @@ ffbuild_dockerbuild() {
--default-library=shared
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--cross-file=/cross.meson
)
else
echo "Unknown target"
return 255
fi
meson "${myconf[@]}" ..
ninja -j"$(nproc)"
ninja install
@@ -37,5 +29,5 @@ ffbuild_dockerbuild() {
mkdir -p /opt/dlls/
cp -nav /opt/dav1d/* /opt/dlls/
rm -r /opt/dlls/lib/pkgconfig
rm -r /opt/dlls/include /opt/dlls/lib/pkgconfig
}

View File

@@ -1,33 +0,0 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/ultravideo/kvazaar.git"
SCRIPT_TAG="v2.2.0"
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_TAG" kvazaar
cd kvazaar
./autogen.sh
local myconf=(
--prefix="$FFBUILD_PREFIX"
--disable-shared
--enable-static
--with-pic
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
)
else
echo "Unknown target"
return 255
fi
./configure "${myconf[@]}"
make -j"$(nproc)"
make install
echo "Cflags.private: -DKVZ_STATIC_LIB" >>"$FFBUILD_PREFIX"/lib/pkgconfig/kvazaar.pc
}

View File

@@ -10,6 +10,7 @@ ffbuild_dockerbuild() {
autoreconf -i
local myconf=(
--host="$FFBUILD_TOOLCHAIN"
--prefix="$FFBUILD_PREFIX"
--disable-shared
--enable-static
@@ -17,15 +18,6 @@ ffbuild_dockerbuild() {
--disable-sherlock265
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
)
else
echo "Unknown target"
return 255
fi
./configure "${myconf[@]}"
make -j"$(nproc)"
make install

View File

@@ -1,37 +0,0 @@
#!/bin/bash
SCRIPT_REPO="https://svn.code.sf.net/p/lame/svn/trunk/lame"
SCRIPT_REV="6507"
ffbuild_dockerbuild() {
retry-tool sh -c "rm -rf lame && svn checkout '${SCRIPT_REPO}@${SCRIPT_REV}' lame"
cd lame
autoreconf -i
local myconf=(
--prefix="$FFBUILD_PREFIX"
--disable-shared
--enable-static
--enable-nasm
--disable-gtktest
--disable-cpml
--disable-frontend
--disable-decoder
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
)
else
echo "Unknown target"
return 255
fi
export CFLAGS="$CFLAGS -DNDEBUG"
./configure "${myconf[@]}"
make -j"$(nproc)"
make install
}

View File

@@ -10,21 +10,13 @@ ffbuild_dockerbuild() {
./autogen.sh
local myconf=(
--host="$FFBUILD_TOOLCHAIN"
--prefix="$FFBUILD_PREFIX"
--disable-shared
--enable-static
--disable-extra-programs
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
)
else
echo "Unknown target"
return 255
fi
./configure "${myconf[@]}"
make -j"$(nproc)"
make install

View File

@@ -1,36 +0,0 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/xiph/theora.git"
SCRIPT_COMMIT="7180717276af1ebc7da15c83162d6c5d6203aabf"
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" theora
cd theora
./autogen.sh
local myconf=(
--prefix="$FFBUILD_PREFIX"
--disable-shared
--enable-static
--with-pic
--disable-examples
--disable-oggtest
--disable-vorbistest
--disable-spec
--disable-doc
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
)
else
echo "Unknown target"
return 255
fi
./configure "${myconf[@]}"
make -j"$(nproc)"
make install
}

View File

@@ -1,39 +1,28 @@
#!/bin/bash
SCRIPT_REPO="https://chromium.googlesource.com/webm/libwebp"
SCRIPT_TAG="v1.3.1-rc1"
SCRIPT_REPO="https://github.com/webmproject/libwebp.git"
SCRIPT_TAG="1.3.1"
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_TAG" webp
cd webp
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_TAG" libwebp
cd libwebp
./autogen.sh
local myconf=(
--host="$FFBUILD_TOOLCHAIN"
--prefix="$FFBUILD_PREFIX"
--disable-shared
--enable-static
--with-pic
--enable-libwebpmux
--disable-libwebpextras
--disable-libwebpdemux
--enable-everything
--disable-sdl
--disable-gl
--disable-png
--disable-jpeg
--disable-tiff
--disable-gif
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
)
else
echo "Unknown target"
return 255
fi
./configure "${myconf[@]}"
make -j"$(nproc)"
make install

View File

@@ -1,49 +0,0 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/xiph/rav1e.git"
SCRIPT_TAG="v0.6.6"
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_TAG" rav1e
cd rav1e
local myconf=(
--prefix=/opt/rav1e
--library-type=cdylib
--release
)
if [[ -n "$FFBUILD_RUST_TARGET" ]]; then
unset PKG_CONFIG_LIBDIR
export CC="gcc"
export CXX="g++"
export TARGET_CC="${FFBUILD_CROSS_PREFIX}gcc"
export TARGET_CXX="${FFBUILD_CROSS_PREFIX}g++"
export CROSS_COMPILE=1
export TARGET_CFLAGS="$CFLAGS"
export TARGET_CXXFLAGS="$CFLAGS"
unset CFLAGS
unset CXXFLAGS
myconf+=(
--target="$FFBUILD_RUST_TARGET"
)
cat <<EOF >$CARGO_HOME/config.toml
[target.$FFBUILD_RUST_TARGET]
linker = "${FFBUILD_CROSS_PREFIX}gcc"
ar = "${FFBUILD_CROSS_PREFIX}ar"
EOF
fi
cargo cinstall -v "${myconf[@]}"
chmod 644 /opt/rav1e/lib/*rav1e*
sed -i "s@^prefix=/opt/rav1e\$@prefix=${FFBUILD_PREFIX}@" /opt/rav1e/lib/pkgconfig/rav1e.pc
cp -nav /opt/rav1e/* "${FFBUILD_PREFIX}/"
mkdir -p /opt/dlls/
cp -nav /opt/rav1e/* /opt/dlls/
rm -r /opt/dlls/lib/pkgconfig
}

View File

@@ -1,10 +1,9 @@
#!/bin/bash
SCRIPT_REPO="https://git.code.sf.net/p/soxr/code"
SCRIPT_TAG="0.1.3"
ARTIFACT_URL='https://sourceforge.net/projects/soxr/files/soxr-0.1.3-Source.tar.xz'
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_TAG" soxr
retry-tool sh -c "rm -rf soxr && mkdir -p soxr && curl -LSs '${ARTIFACT_URL}' | tar -xJf- --strip-components=1 -C soxr"
cd soxr
mkdir build && cd build

View File

@@ -1,35 +0,0 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/njh/twolame.git"
SCRIPT_COMMIT="90b694b6125dbe23a346bd5607a7fb63ad2785dc"
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" twolame
cd twolame
NOCONFIGURE=1 ./autogen.sh
touch doc/twolame.1
local myconf=(
--prefix="$FFBUILD_PREFIX"
--with-pic
--disable-shared
--enable-static
--disable-sndfile
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
)
else
echo "Unknown target"
return 255
fi
./configure "${myconf[@]}"
make -j"$(nproc)"
make install
sed -i 's/Cflags:/Cflags: -DLIBTWOLAME_STATIC/' "$FFBUILD_PREFIX"/lib/pkgconfig/twolame.pc
}

View File

@@ -1,32 +0,0 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/mirror/x264.git"
SCRIPT_COMMIT="eaa68fad9e5d201d42fde51665f2d137ae96baf0"
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" x264
cd x264
local myconf=(
--disable-cli
--enable-static
--enable-pic
--disable-lavf
--disable-swscale
--prefix="$FFBUILD_PREFIX"
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
--cross-prefix="$FFBUILD_CROSS_PREFIX"
)
else
echo "Unknown target"
return 255
fi
./configure "${myconf[@]}"
make -j"$(nproc)"
make install
}

View File

@@ -1,62 +0,0 @@
#!/bin/bash
SCRIPT_REPO="https://bitbucket.org/multicoreware/x265_git.git"
SCRIPT_COMMIT="34532bda12a3a3141880582aa186a59cd4538ae6"
ffbuild_dockerbuild() {
git clone "$SCRIPT_REPO" x265
cd x265
git checkout "$SCRIPT_COMMIT"
local common_config=(
-DCMAKE_INSTALL_PREFIX="/opt/x265"
-DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN"
-DCMAKE_BUILD_TYPE=Release
-DENABLE_CLI=OFF
-DCMAKE_ASM_NASM_FLAGS=-w-macro-params-legacy
)
mkdir 8bit 10bit 12bit
cmake -S source -B 12bit -G Ninja \
"${common_config[@]}" \
-DHIGH_BIT_DEPTH=ON \
-DEXPORT_C_API=OFF \
-DENABLE_SHARED=OFF \
-DENABLE_STATIC=ON \
-DMAIN12=ON
ninja -C 12bit -j"$(nproc)"
cmake -S source -B 10bit -G Ninja \
"${common_config[@]}" \
-DENABLE_HDRDENABLE_HDR10_PLUS=ON \
-DHIGH_BIT_DEPTH=ON \
-DEXPORT_C_API=OFF \
-DENABLE_SHARED=OFF \
-DENABLE_STATIC=ON
ninja -C 10bit -j"$(nproc)"
cmake -S source -B 8bit -G Ninja \
"${common_config[@]}" \
-DEXTRA_LIB='x265_main10.a;x265_main12.a' \
-DENABLE_HDRDENABLE_HDR10_PLUS=ON \
-DEXTRA_LINK_FLAGS=-L. \
-DENABLE_SHARED=ON \
-DENABLE_STATIC=OFF \
-DLINKED_10BIT=ON \
-DLINKED_12BIT=ON
ln -s ../10bit/libx265.a 8bit/libx265_main10.a
ln -s ../12bit/libx265.a 8bit/libx265_main12.a
ninja -C 8bit -j"$(nproc)"
ninja -C 8bit install
sed -ri 's/^(Libs.private:.*)$/\1 -lstdc++/' /opt/x265/lib/pkgconfig/x265.pc
sed -i "s@^prefix=/opt/x265\$@prefix=${FFBUILD_PREFIX}@" /opt/x265/lib/pkgconfig/x265.pc
cp -nav /opt/x265/* "${FFBUILD_PREFIX}/"
mkdir -p /opt/dlls/
cp -nav /opt/x265/* /opt/dlls/
rm -r /opt/dlls/lib/pkgconfig
}

View File

@@ -1,41 +0,0 @@
#!/bin/bash
SCRIPT_REPO="http://svn.xvid.org/trunk/xvidcore"
SCRIPT_REV="2198"
ffbuild_dockerbuild() {
retry-tool sh -c "rm -rf xvid && svn checkout --username 'anonymous' --password '' '${SCRIPT_REPO}@${SCRIPT_REV}' xvid"
cd xvid
cd build/generic
# The original code fails on a two-digit major...
sed -i -e 's/GCC_MAJOR=.*/GCC_MAJOR=10/' \
-e 's/GCC_MINOR=.*/GCC_MINOR=0/' \
configure.in
./bootstrap.sh
local myconf=(
--prefix="$FFBUILD_PREFIX"
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
)
else
echo "Unknown target"
return 255
fi
./configure "${myconf[@]}"
make -j"$(nproc)"
make install
if [[ $TARGET == win* ]]; then
rm "$FFBUILD_PREFIX"/{bin/libxvidcore.dll,lib/libxvidcore.dll.a}
elif [[ $TARGET == linux* ]]; then
rm "$FFBUILD_PREFIX"/lib/libxvidcore.so*
fi
}

View File

@@ -11,21 +11,13 @@ ffbuild_dockerbuild() {
./autogen.sh
local myconf=(
--host="$FFBUILD_TOOLCHAIN"
--prefix="$FFBUILD_PREFIX"
--disable-shared
--enable-static
--with-pic
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
)
else
echo "Unknown target"
return 255
fi
./configure "${myconf[@]}"
make -j"$(nproc)"
make install

View File

@@ -8,6 +8,9 @@ ffbuild_dockerbuild() {
cd ffmpeg
# Broken configs:
# --enable-lto (Broken on Windows)
./configure \
--cpu="x86_64" \
--arch='x86_64' \
@@ -16,23 +19,36 @@ ffbuild_dockerbuild() {
--pkg-config=pkg-config \
--pkg-config-flags="--static" \
--cross-prefix="$FFBUILD_CROSS_PREFIX" \
--disable-alsa \
--disable-static \
--disable-debug \
--disable-doc \
--disable-htmlpages \
--disable-txtpages \
--disable-manpages \
--disable-podpages \
--disable-indevs \
--disable-libplacebo \
--disable-neon-clobber-test \
--disable-network \
--disable-outdevs \
--disable-parser=avs2 \
--disable-parser=avs3 \
--disable-postproc \
--disable-programs \
--disable-libwebp \
--disable-sdl2 \
--disable-metal \
--disable-network \
--disable-openssl \
--disable-schannel \
--disable-static \
--disable-securetransport \
--disable-xlib \
--disable-libxcb \
--disable-libxcb-shm \
--disable-libxcb-xfixes \
--disable-libxcb-shape \
--disable-libv4l2 \
--disable-v4l2-m2m \
--disable-vaapi \
--disable-vdpau \
--disable-w32threads \
--disable-xmm-clobber-test \
--disable-neon-clobber-test \
--enable-amf \
--enable-avcodec \
--enable-avfilter \
@@ -42,31 +58,23 @@ ffbuild_dockerbuild() {
--enable-ffnvcodec \
--enable-gpl \
--enable-gray \
--enable-iconv \
--enable-inline-asm \
--enable-libdav1d \
--enable-libjxl \
--enable-libkvazaar \
--enable-libmp3lame \
--enable-libopenjpeg \
--enable-libopus \
--enable-librav1e \
--enable-libshaderc \
--enable-libsoxr \
--enable-libtheora \
--enable-libtwolame \
--enable-libvmaf \
--enable-libvorbis \
--enable-libvpl \
--enable-libvpx \
--enable-libwebp \
--enable-libx264 \
--enable-libx265 \
--enable-libxvid \
--enable-libzimg \
--enable-lzma \
--enable-openal \
--enable-opencl \
--enable-opengl \
--enable-optimizations \
--enable-pic \
--enable-postproc \
--enable-pthreads \

View File

@@ -19,12 +19,8 @@ ffbuild_dockerbuild() {
-DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" \
-DBUILD_TESTING=OFF \
-DBUILD_SHARED_LIBS=ON \
-DWITH_X265=ON \
-DWITH_X265_PLUGIN=OFF \
-DWITH_DAV1D=ON \
-DWITH_DAV1D_PLUGIN=OFF \
-DWITH_RAV1E=ON \
-DWITH_RAV1E_PLUGIN=OFF \
-DWITH_LIBDE265=ON \
-DWITH_LIBDE265_PLUGIN=OFF \
-DWITH_LIBSHARPYUV=ON \
@@ -45,4 +41,6 @@ ffbuild_dockerbuild() {
"${FFBUILD_CROSS_PREFIX}gendef" libheif.dll
"${FFBUILD_CROSS_PREFIX}dlltool" -m i386:x86-64 -d libheif.def -l heif.lib -D libheif.dll
mv libheif.def heif.lib ../lib/
}