termux-packages/packages/mpv/build.sh
Tom Yan d91df72f7f mpv: build with --disable-android
Since 0.28 the android build option is used for a few features that
are not useful in Termux (as we don't do video output and JNI isn't
available)

In 0.27 the option is only used to enable some wrapping of strnlen,
as it was broken (but also fixed) long time ago in Android.

Therefore instead of the extra patching that do us no good, let us
simply build with --disable-android and disable the wrapping.

Also use vid=no instead of vo=null in mpv.conf, as the latter does
not prevent video decoding.
2018-06-26 13:08:54 +02:00

69 lines
2.2 KiB
Bash

TERMUX_PKG_HOMEPAGE=https://mpv.io/
TERMUX_PKG_DESCRIPTION="Command-line media player"
TERMUX_PKG_VERSION=0.28.2
TERMUX_PKG_REVISION=1
TERMUX_PKG_SHA256=aada14e025317b5b3e8e58ffaf7902e8b6e4ec347a93d25a7c10d3579426d795
TERMUX_PKG_SRCURL=https://github.com/mpv-player/mpv/archive/v${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_DEPENDS="ffmpeg, openal-soft, libandroid-glob"
TERMUX_PKG_RM_AFTER_INSTALL="share/icons share/applications"
termux_step_pre_configure() {
LDFLAGS+=" -landroid-glob"
}
termux_step_make_install () {
cd $TERMUX_PKG_SRCDIR
./bootstrap.py
./waf configure \
--prefix=$TERMUX_PREFIX \
--disable-gl \
--disable-jpeg \
--disable-lcms2 \
--disable-libarchive \
--disable-libass \
--disable-lua \
--disable-pulse \
--enable-openal \
--disable-caca \
--disable-alsa \
--disable-x11 \
--disable-android
./waf -v install
# Use opensles audio out be default:
mkdir -p $TERMUX_PREFIX/etc/mpv
cp $TERMUX_PKG_BUILDER_DIR/mpv.conf $TERMUX_PREFIX/etc/mpv/mpv.conf
# Try to work around OpenSL ES library clashes:
# Linking against libOpenSLES causes indirect linkage against
# libskia.so, which links against the platform libjpeg.so and
# libpng.so, which are not compatible with the Termux ones.
#
# On Android N also liblzma seems to conflict.
mkdir -p $TERMUX_PREFIX/libexec
mv $TERMUX_PREFIX/bin/mpv $TERMUX_PREFIX/libexec
local SYSTEM_LIBFOLDER=lib64
if [ $TERMUX_ARCH_BITS = 32 ]; then SYSTEM_LIBFOLDER=lib; fi
echo "#!/bin/sh" > $TERMUX_PREFIX/bin/mpv
# Work around issues on devices having ffmpeg libraries
# in a system vendor dir, reported by live_the_dream on #termux:
local FFMPEG_LIBS="" lib
for lib in avcodec avfilter avformat avutil postproc swresample swscale; do
if [ -n "$FFMPEG_LIBS" ]; then FFMPEG_LIBS+=":"; fi
FFMPEG_LIBS+="$TERMUX_PREFIX/lib/lib${lib}.so"
done
echo "export LD_PRELOAD=$FFMPEG_LIBS" >> $TERMUX_PREFIX/bin/mpv
# /system/vendor/lib(64) needed for libqc-opt.so on
# a xperia z5 c, reported by BrainDamage on #termux:
echo "LD_LIBRARY_PATH=/system/$SYSTEM_LIBFOLDER:/system/vendor/$SYSTEM_LIBFOLDER:$TERMUX_PREFIX/lib $TERMUX_PREFIX/libexec/mpv \"\$@\"" >> $TERMUX_PREFIX/bin/mpv
chmod +x $TERMUX_PREFIX/bin/mpv
}