# Maintainer: Mazhar Hussain <realmazharhussain@gmail.com>

_realname=gst-plugins-rs
pkgbase=mingw-w64-${_realname}
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
pkgver=1.24.12
_tag=gstreamer-$pkgver
pkgrel=1
pkgdesc='GStreamer plugins written in Rust (mingw-w64)'
arch=(any)
mingw_arch=('mingw64' 'ucrt64' 'clang64')
url="https://gitlab.freedesktop.org/gstreamer/$_realname"
license=('spdx:LGPL-3.0-or-later AND Apache-2.0 AND MIT AND MPL-2.0')
depends=(${MINGW_PACKAGE_PREFIX}-gtk4
         ${MINGW_PACKAGE_PREFIX}-libsodium
         ${MINGW_PACKAGE_PREFIX}-gstreamer
         ${MINGW_PACKAGE_PREFIX}-gst-plugins-base
         ${MINGW_PACKAGE_PREFIX}-gst-plugins-bad-libs
         ${MINGW_PACKAGE_PREFIX}-libwebp)
makedepends=(${MINGW_PACKAGE_PREFIX}-rust
             ${MINGW_PACKAGE_PREFIX}-cargo-c
             ${MINGW_PACKAGE_PREFIX}-pkgconf)
source=("$url/-/archive/$_tag/$_realname-gstreamer-$_tag.tar.bz2")
sha256sums=('29ee51abe820db58338942c2c6d5fa0e94180117eb29c8f26797c3f1b6757b7d')

prepare() {
  mv "$_realname-$_tag-"* "$_realname-$_tag"
  cd $_realname-$_tag
  cargo fetch
}

_cargo_opts=(--workspace
             --offline
             --release
             --library-type=cdylib
             --prefix="${MINGW_PREFIX}"
             --exclude gst-plugin-csound
             --exclude gst-plugin-dav1d  # not compatiple with dav1d 1.3.0 yet
             --exclude gst-plugin-aws)

build() {
  cd $_realname-$_tag
  MSYS2_ARG_CONV_EXCL="--prefix=" cargo cbuild "${_cargo_opts[@]}"
}

check() {
  cd $_realname-$_tag
  MSYS2_ARG_CONV_EXCL="--prefix=" cargo ctest "${_cargo_opts[@]}" --target-dir=tests-build
}

package() {
  cd $_realname-$_tag
  MSYS2_ARG_CONV_EXCL="--prefix=" cargo cinstall "${_cargo_opts[@]}" --destdir="$pkgdir"
  install -Dm644 -t "$pkgdir/$MINGW_PREFIX"/share/licenses/$_realname/ LICENSE*
}
