jobextra/mpv/PKGBUILD-aur
2023-08-19 02:38:52 +03:00

158 lines
4.5 KiB
Text

# Maintainer: Philip Sequeira <qmega+aur@sksm.net>
# Contributor: Rudolf Polzer <divVerent@xonotic.org>
# Contributor: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
# Contributor: Eivind Uggedal <eivind@uggedal.com>
_opt_features=(
# Disabled by default, need to be enabled every build:
#dvd
#cd
#sdl2
#openal
# mpv supports lua52 and luajit, and will automatically enable Lua support if
# either is installed. If both are installed, it will choose lua52. The choice
# is made at compile time and only one of the two can be enabled. The two
# options below, when uncommented, will force selection of their respective
# implementations even if the other is installed, as well as adding the
# appropriate dependency.
#lua
luajit
# The rest of these are autodetected, and are just provided to set
# dependencies the first time you build. If you have the dependencies
# installed, subsequent builds will pick them up automatically.
#javascript
x11
wayland
libplacebo # Vulkan and vo=gpu-next (latter sometimes needs libplacebo-git)
#uchardet
#rubberband
# Features disabled by default, but don't require any extra dependencies on an
# Arch system:
dvbin
)
# Note: The configure script will automatically enable most optional features it
# finds support for on your system. The dependencies of the built package will
# be updated based on dynamic libraries, but if you want to avoid linking
# against something you have installed, you'll have to disable it in the
# configure below.
pkgname=mpv-git
_gitname=mpv
pkgver=0.35.0_135_g9b59d39a3a
pkgrel=1
pkgdesc='Video player based on MPlayer/mplayer2 (git version)'
arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
license=('GPL')
url='https://mpv.io'
_undetected_depends=('hicolor-icon-theme')
depends=('ffmpeg' "${_undetected_depends[@]}")
optdepends=('yt-dlp: for video-sharing websites playback (preferred over youtube-dl)'
'youtube-dl: for video-sharing websites playback')
makedepends=('git'
'meson'
'python-docutils' # for rst2man, to generate manpage
'pacman-contrib' # for pactree, used in find-deps.py
'vulkan-headers')
provides=('mpv' 'libmpv.so')
conflicts=('mpv')
options=('!emptydirs')
install=mpv.install
source=('git+https://github.com/mpv-player/mpv'
'find-deps.py')
sha256sums=('SKIP'
'1ba780ede4a28b68ae5b7ab839958ff91ed01d3c6c1d24cce8a5dd24492f8d2b')
_opt_extra_flags=()
for feature in "${_opt_features[@]}"; do
case "$feature" in
dvd)
depends+=('libdvdnav')
_opt_extra_flags+=('-Ddvdnav=enabled')
;;
cd)
depends+=('libcdio-paranoia')
_opt_extra_flags+=('-Dcdda=enabled')
;;
lua)
depends+=('lua52')
_opt_extra_flags+=('-Dlua=enabled' '-Dlua=lua52')
;;
luajit)
depends+=('luajit')
_opt_extra_flags+=('-Dlua=enabled' '-Dlua=luajit')
;;
javascript)
depends+=('mujs')
_opt_extra_flags+=('-Djavascript=enabled')
;;
x11)
depends+=('libxinerama' 'libxpresent' 'libxss')
_opt_extra_flags+=('-Dx11=enabled')
;;
wayland)
depends+=('wayland' 'libxkbcommon')
makedepends+=('wayland-protocols')
_opt_extra_flags+=('-Dwayland=enabled')
;;
sdl2|openal|libplacebo|uchardet|rubberband)
depends+=("$feature")
_opt_extra_flags+=("-D${feature}=enabled")
;;
dvbin)
_opt_extra_flags+=("-D${feature}=enabled")
;;
*)
echo "ERROR: Unknown feature option: $feature" >&2
exit 1
esac
done
pkgver() {
cd "$srcdir/$_gitname"
./version.py | sed s/-/_/g
}
build() {
cd "$srcdir/$_gitname"
# Removing build dir, if present, ensures features omitted from the configure
# command get their default values, and cleans up after waf if it was
# previously used (which can cause the build to fail otherwise).
# Downside is wasted recompilation.
rm -rf build
meson setup build \
--prefix=/usr \
--sysconfdir=/etc \
--buildtype=plain \
--wrap-mode=nodownload \
-Dlibmpv=true \
"${_opt_extra_flags[@]}"
meson compile -C build
}
package() {
cd "$srcdir/$_gitname"
meson install -C build --no-rebuild --destdir="$pkgdir"
# Update dependencies automatically based on dynamic libraries
_detected_depends=($(python3 "$srcdir"/find-deps.py "$pkgdir"/usr/{bin/mpv,lib/libmpv.so}))
echo 'Auto-detected dependencies:'
echo "${_detected_depends[@]}" | fold -s -w 79 | sed 's/^/ /'
depends=("${_detected_depends[@]}" "${_undetected_depends[@]}")
}