# Maintainer: Artem Konoplin <konoplin@gmail.com>
# Contributor: Ray Donnelly <mingwandroid@gmail.com>

_realname=mlt
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=7.32.0
pkgrel=3
pkgdesc="An open source multimedia framework (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url="https://www.mltframework.org"
license=('spdx:LGPL-2.1-or-later')
_plugins_deps=("${MINGW_PACKAGE_PREFIX}-ffmpeg"
               "${MINGW_PACKAGE_PREFIX}-fftw"
               "${MINGW_PACKAGE_PREFIX}-frei0r-plugins"
               "${MINGW_PACKAGE_PREFIX}-gdk-pixbuf2"
               "${MINGW_PACKAGE_PREFIX}-libebur128"
               "${MINGW_PACKAGE_PREFIX}-libsamplerate"
               "${MINGW_PACKAGE_PREFIX}-libvorbis"
               "${MINGW_PACKAGE_PREFIX}-pango"
               "${MINGW_PACKAGE_PREFIX}-qt5-svg"
               "${MINGW_PACKAGE_PREFIX}-qt6-5compat"
               "${MINGW_PACKAGE_PREFIX}-qt6-svg"
               "${MINGW_PACKAGE_PREFIX}-rtaudio"
               "${MINGW_PACKAGE_PREFIX}-rubberband"
               "${MINGW_PACKAGE_PREFIX}-SDL"
               "${MINGW_PACKAGE_PREFIX}-sox"
               "${MINGW_PACKAGE_PREFIX}-vid.stab")
depends=("${MINGW_PACKAGE_PREFIX}-dlfcn"
         "${MINGW_PACKAGE_PREFIX}-cc-libs"
         "${MINGW_PACKAGE_PREFIX}-libiconv"
         "${MINGW_PACKAGE_PREFIX}-libwinpthread"
         "${MINGW_PACKAGE_PREFIX}-SDL2")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-ninja"
             "${MINGW_PACKAGE_PREFIX}-python"
             "${MINGW_PACKAGE_PREFIX}-swig"
             "${_plugins_deps[@]}")
optdepends=("${_plugins_deps[@]}")
source=(https://github.com/mltframework/mlt/releases/download/v${pkgver}/mlt-${pkgver}.tar.gz
        0001-cmake-fix-libs-install.patch
        0002-cmake-install-manpage.patch
        0003-cmake-fix-x86-detection.patch
        0004-Support-FFmpeg-8-1142.patch)
sha256sums=('1ca5aadfe27995c879b9253b3a48d1dcc3b1247ea0b5620b087d58f5521be028'
            '13e37f51782f25ebbd16dd2ab901e27c7dc594ace4dba3225d2304e22445b545'
            '88ddba2695d8c0cfb7e0b0be01a3caeb47c2ba2ea0677f489cc7dd2a7844885c'
            '500e518bdb3892dbdceab9e03e43a148b83c0000d3088f131d22b013b24fda48'
            '6de96a0f581fb67c5820a634c1c997f5ed9053cb8f50a69d72b94b5e324ebe2f')

apply_patch_with_msg() {
  for _patch in "$@"
  do
    msg2 "Applying ${_patch}"
    patch -Nbp1 -i "${srcdir}/${_patch}"
  done
}

prepare() {
  cd "${srcdir}/${_realname}-${pkgver}"
  apply_patch_with_msg \
    0001-cmake-fix-libs-install.patch \
    0002-cmake-install-manpage.patch \
    0003-cmake-fix-x86-detection.patch

  # Backport of https://github.com/mltframework/mlt/commit/ae83ceee72a0a39c063b02310f6ce928839712a2
  apply_patch_with_msg 0004-Support-FFmpeg-8-1142.patch
}

build() {
  mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}"

  declare -a extra_config
  if check_option "debug" "n"; then
    extra_config+=("-DCMAKE_BUILD_TYPE=Release")
  else
    extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
  fi

   # XXX: avoid mingw-w64 pulling in winpthreads via time.h
  export CFLAGS+=" -DIN_WINPTHREAD"

  CFLAGS+=" -Wno-int-conversion" \
  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
    cmake \
      -GNinja \
      -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \
      "${extra_config[@]}" \
      -DPython3_EXECUTABLE=${MINGW_PREFIX}/bin/python.exe \
      -DWINDOWS_DEPLOY=OFF \
      -DMOD_GLAXNIMATE_QT6=ON \
      -DSWIG_PYTHON=ON \
      -DMOD_QT6=ON \
      "${srcdir}/${_realname}-${pkgver}"

  cmake --build .
}

package() {
  cd "${srcdir}/build-${MSYSTEM}"
  DESTDIR="${pkgdir}" cmake --install .
  install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING"
}
