# Maintainer: David Runge <dvzrv@archlinux.org>

_name=Tidal
pkgname=haskell-tidal
pkgver=1.7.7
pkgrel=1
pkgdesc="A domain specific language for live coding pattern."
arch=('x86_64')
url="https://tidalcycles.org/"
license=('GPL3')
groups=('pro-audio')
depends=('ghc' 'ghc-libs' 'glibc' 'haskell-bifunctors' 'haskell-clock'
'haskell-colour' 'haskell-hosc' 'haskell-mwc-random' 'haskell-network'
'haskell-primitive' 'haskell-random' 'haskell-vector' 'supercollider')
makedepends=('uusi')
checkdepends=('haskell-microspec')
optdepends=('sc3-plugins: Examples using special UGens')
conflicts=('tidalcycles')
replaces=('tidalcycles')
source=("$pkgname-$pkgver.tar.gz::https://github.com/tidalcycles/${_name}/archive/refs/tags/${pkgver}.tar.gz")
sha512sums=('a3a2b49a4e58ab825cab9c78b74955284e2bb662630e8589f2b472ef704db4c32b63aaa774933e9e230f79af43ecfcf8965ba2e4f203cc583b24d49ecca8da13')
b2sums=('803a17219c321096e68ffe855f456bfd490e8314f588ba7972fa26c3d557e827e09bb50441b26db518365883a71085cd7645e5a7b24268c68e869c15e217ac34')

prepare() {
  mv -v "${_name}-$pkgver" "$pkgname-$pkgver"
  uusi -u hosc $pkgname-$pkgver/tidal.cabal
}

build() {
  cd "$pkgname-$pkgver"
  runhaskell Setup configure -O \
                             --enable-shared \
                             --enable-executable-dynamic \
                             --disable-library-vanilla \
                             --prefix=/usr \
                             --docdir="/usr/share/doc/${pkgname}" \
                             --enable-tests \
                             --dynlibdir=/usr/lib \
                             --libsubdir=\$compiler/site-local/\$pkgid
  runhaskell Setup build $MAKEFLAGS
  runhaskell Setup register --gen-script
  runhaskell Setup unregister --gen-script
  sed -i -r -e "s|ghc-pkg.*update[^ ]* |&'--force' |" register.sh
  sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
}

check() {
  cd "$pkgname-$pkgver"
  runhaskell Setup test --show-details=direct
}

package() {
  cd "$pkgname-$pkgver"
  runhaskell Setup copy --destdir="${pkgdir}"
  install -vDm 744 register.sh "$pkgdir/usr/share/haskell/register/$pkgname.sh"
  install -vDm 744 unregister.sh "$pkgdir/usr/share/haskell/unregister/$pkgname.sh"
}
