# Maintainer: Alexey Pavlov # Contributor: James Ross-Gowan _realname=mpv pkgbase="mingw-w64-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.40.0 pkgrel=4 pkgdesc="Video player based on MPlayer/mplayer2 (mingw-w64)" arch=('any') mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') url="https://mpv.io/" msys2_repository_url="https://github.com/mpv-player/mpv" msys2_references=( "cpe: cpe:/a:mpv:mpv" ) license=('spdx:GPL-2.0-or-later') depends=("${MINGW_PACKAGE_PREFIX}-ffmpeg" "${MINGW_PACKAGE_PREFIX}-lcms2" "${MINGW_PACKAGE_PREFIX}-libarchive" "${MINGW_PACKAGE_PREFIX}-libass" "${MINGW_PACKAGE_PREFIX}-libcaca" "${MINGW_PACKAGE_PREFIX}-libcdio" "${MINGW_PACKAGE_PREFIX}-libcdio-paranoia" "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo" "${MINGW_PACKAGE_PREFIX}-libplacebo" "${MINGW_PACKAGE_PREFIX}-lua51" "${MINGW_PACKAGE_PREFIX}-mujs" "${MINGW_PACKAGE_PREFIX}-rubberband" "${MINGW_PACKAGE_PREFIX}-shaderc" "${MINGW_PACKAGE_PREFIX}-spirv-cross" "${MINGW_PACKAGE_PREFIX}-uchardet" "${MINGW_PACKAGE_PREFIX}-vapoursynth" "${MINGW_PACKAGE_PREFIX}-vulkan" "winpty") makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-meson" "${MINGW_PACKAGE_PREFIX}-ninja" "${MINGW_PACKAGE_PREFIX}-pkgconf" "${MINGW_PACKAGE_PREFIX}-python-docutils" "${MINGW_PACKAGE_PREFIX}-python-rst2pdf" "${MINGW_PACKAGE_PREFIX}-vulkan-headers") optdepends=("${MINGW_PACKAGE_PREFIX}-yt-dlp: for video-sharing websites playback") source=("https://github.com/mpv-player/${_realname}/archive/v${pkgver}/${_realname}-${pkgver}.tar.gz" "0001-skip-stack-protector-for-bare-wrapper.patch" "https://github.com/mpv-player/mpv/commit/26b29fba02a2782f68e2906f837d21201fc6f1b9.patch") sha256sums=('10a0f4654f62140a6dd4d380dcf0bbdbdcf6e697556863dc499c296182f081a3' 'b9a4c282548ad98f1400a9a2f05e38acddb76a729bcf265c3b5914adc84fc152' '9596f2390a120a54d1bc48a3937d6f236feab0c4cecaae8a0d3dec59a38e29b3') prepare() { cd "${srcdir}/${_realname}-${pkgver}" # https://github.com/mpv-player/mpv/pull/15911#issuecomment-2752437431 patch -Np1 -i "${srcdir}/0001-skip-stack-protector-for-bare-wrapper.patch" # ffmpeg 8.0 compatibility patch -Np1 -i "${srcdir}/26b29fba02a2782f68e2906f837d21201fc6f1b9.patch" } build() { mkdir -p build-${MSYSTEM} && cd build-${MSYSTEM} MSYS2_ARG_CONV_EXCL="--prefix=" \ meson setup \ --prefix="${MINGW_PREFIX}" \ --wrap-mode=nodownload \ --buildtype=plain \ -Ddefault_library=shared \ -Dcdda=disabled \ -Ddvdnav=disabled \ -Dlibmpv=true \ -Djavascript=enabled \ $([[ ${CARCH} == aarch64 ]] && echo "-Dgl=disabled") \ ../${_realname}-${pkgver} meson compile } package() { cd "${srcdir}/build-${MSYSTEM}" DESTDIR="${pkgdir}" meson install # Move encoding-profiles.conf to share/doc alongside the example .conf files. # mpv doesn't search /etc for configuration on MinGW. mv "${pkgdir}${MINGW_PREFIX}/etc/mpv/"*.conf "${pkgdir}${MINGW_PREFIX}/share/doc/mpv/" # mpv needs winpty for key bindings to work on the terminal mv "${pkgdir}${MINGW_PREFIX}/bin/mpv.exe" "${pkgdir}${MINGW_PREFIX}/bin/mpv_exe" _exename=mpv echo '#!/usr/bin/env bash' > "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" echo 'export _started_from_console=yes' >> "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" echo '/usr/bin/winpty "$( dirname ${BASH_SOURCE[0]} )/'${_exename}'.exe" "$@"' >> "${pkgdir}${MINGW_PREFIX}/bin/${_exename}" mv "${pkgdir}${MINGW_PREFIX}/bin/mpv_exe" "${pkgdir}${MINGW_PREFIX}/bin/mpv.exe" }