# Maintainer: fauxpark <fauxpark@gmail.com>

_realname=mkvtoolnix
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-cli"
         "${MINGW_PACKAGE_PREFIX}-${_realname}-gui")
pkgver=78.0
pkgrel=2
pkgdesc="Set of tools to create, edit and inspect Matroska files (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64')
url='https://mkvtoolnix.download/'
license=('spdx:GPL-2.0-or-later')
depends=("${MINGW_PACKAGE_PREFIX}-boost"
         "${MINGW_PACKAGE_PREFIX}-gcc-libs"
         "${MINGW_PACKAGE_PREFIX}-gmp"
         "${MINGW_PACKAGE_PREFIX}-libebml"
         "${MINGW_PACKAGE_PREFIX}-libmatroska"
         "${MINGW_PACKAGE_PREFIX}-pugixml"
         "${MINGW_PACKAGE_PREFIX}-qt6-base")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-autotools"
             "${MINGW_PACKAGE_PREFIX}-ruby"
             "${MINGW_PACKAGE_PREFIX}-docbook-xsl"
             "${MINGW_PACKAGE_PREFIX}-imagemagick"
             "${MINGW_PACKAGE_PREFIX}-cmark"
             "${MINGW_PACKAGE_PREFIX}-libvorbis"
             "${MINGW_PACKAGE_PREFIX}-qt6-tools"
             "${MINGW_PACKAGE_PREFIX}-qt6-multimedia"
             "${MINGW_PACKAGE_PREFIX}-qt6-svg"
             "${MINGW_PACKAGE_PREFIX}-zlib"
             "po4a"
             "zsh")
source=(https://mkvtoolnix.download/sources/mkvtoolnix-${pkgver}.tar.xz{,.sig})
sha256sums=('6a50fce8c66c55410e0df2a6952f0bab7a3c92914db7feb285b9f1bb03fcd0d3'
            'SKIP')
validpgpkeys=('D9199745B0545F2E8197062B0F92290A445B9007') # Moritz Bunkus <moritz@bunkus.org>
noextract=(mkvtoolnix-${pkgver}.tar.xz)

prepare() {
  cd "${srcdir}"

  plain "Extracting mkvtoolnix-${pkgver}.tar.xz due to symlink(s) without pre-existing target(s)"
  tar -xJf ${srcdir}/mkvtoolnix-${pkgver}.tar.xz -C ${srcdir} || true
  # Do it again to fix the symlinks (as the target files didn't exist yet)
  tar -xJf ${srcdir}/mkvtoolnix-${pkgver}.tar.xz -C ${srcdir} || true
}

build() {
  cd "${srcdir}/${_realname}-${pkgver}"

  ./configure \
    --prefix="${MINGW_PREFIX}" \
    --build="${MINGW_CHOST}" \
    --host="${MINGW_CHOST}" \
    --target="${MINGW_CHOST}" \
    --with-boost-system=boost_system-mt \
    --with-boost-filesystem=boost_filesystem-mt \
    --enable-qt6=yes \
    --enable-qt5=no \
    --disable-update-check

  rake
}

package_mkvtoolnix-cli() {
  cd "${srcdir}/${_realname}-${pkgver}"

  depends+=("${MINGW_PACKAGE_PREFIX}-libogg"
            "${MINGW_PACKAGE_PREFIX}-libvorbis"
            "${MINGW_PACKAGE_PREFIX}-zlib")

  rake DESTDIR="${pkgdir}" install

  rm -rf ${pkgdir}${MINGW_PREFIX}/share/{applications,icons,metainfo,mime,mkvtoolnix}
  find "${pkgdir}${MINGW_PREFIX}" -name mkvtoolnix-gui* -delete
}

package_mkvtoolnix-gui() {
  cd "${srcdir}/${_realname}-${pkgver}"

  depends+=("${MINGW_PACKAGE_PREFIX}-cmark"
            "${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme"
            "${MINGW_PACKAGE_PREFIX}-mkvtoolnix-cli"
            "${MINGW_PACKAGE_PREFIX}-qt6-multimedia"
            "${MINGW_PACKAGE_PREFIX}-qt6-svg")

  rake DESTDIR="${pkgdir}" install

  rm -rf ${pkgdir}${MINGW_PREFIX}/share/locale
  for t in mkv{extract,info,merge,propedit}; do
    find "${pkgdir}${MINGW_PREFIX}" -name $t* -delete
  done
}

# template start; name=mingw-w64-splitpkg-wrappers; version=1.0;
# vim: set ft=bash :

# generate wrappers
for _name in "${pkgname[@]}"; do
  _short="package_${_name#${MINGW_PACKAGE_PREFIX}-}"
  _func="$(declare -f "${_short}")"
  eval "${_func/#${_short}/package_${_name}}"
done
# template end;
