# Contributor: Raed Rizqie <raed.rizqie@gmail.com>

_realname=supercollider
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=3.14.1
pkgrel=1
pkgdesc="Platform for audio synthesis and algorithmic composition (mingw-w64)"
arch=(any)
mingw_arch=('ucrt64' 'clang64' 'clangarm64')
url='https://supercollider.github.io'
msys2_repository_url='https://github.com/supercollider/supercollider'
license=('spdx:GPL-3.0-or-later')
depends=("${MINGW_PACKAGE_PREFIX}-cc-libs"
         "${MINGW_PACKAGE_PREFIX}-boost-libs"
         "${MINGW_PACKAGE_PREFIX}-fftw"
         "${MINGW_PACKAGE_PREFIX}-libsndfile"
         "${MINGW_PACKAGE_PREFIX}-libwinpthread"
         "${MINGW_PACKAGE_PREFIX}-portaudio"
         "${MINGW_PACKAGE_PREFIX}-qt6-base"
         "${MINGW_PACKAGE_PREFIX}-qt6-svg"
         "${MINGW_PACKAGE_PREFIX}-readline"
         "${MINGW_PACKAGE_PREFIX}-yaml-cpp")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
             "${MINGW_PACKAGE_PREFIX}-cmake"
             "${MINGW_PACKAGE_PREFIX}-ninja"
             "${MINGW_PACKAGE_PREFIX}-pkgconf"
             "${MINGW_PACKAGE_PREFIX}-boost"
             "${MINGW_PACKAGE_PREFIX}-qt6-tools")
source=(https://github.com/supercollider/supercollider/releases/download/Version-${pkgver}/SuperCollider-${pkgver}-Source.tar.bz2
        001-cmake-mingw-fix.patch
        002-reduce-warnings.patch
        003-mingw-filesystem.patch
        004-fix-build-with-qt-6.10.patch::https://github.com/supercollider/supercollider/commit/e997e478.patch)
sha256sums=('ee640c68777ae697682066ce5c4a8b7e56c5b223e76c79c13b5be5387ee55bb2'
            'f000900fd602407ad838d4f9a047f4e4e304f138923a48a5133af2615d661b45'
            'a9b5189376408130641e9f44ec83ea23cb55eecaa37f096c53d06cf2d957e70a'
            '03c8e88c2fab5ae29792fa589498d357094395126c521a250671b652d5982cf6'
            'c45cc2cc9d529ecdfadf7dda20b661ef3d974fe6656d8eef39f01cb886afcf7f')

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

prepare() {
  cd SuperCollider-${pkgver}-Source

  apply_patch_with_msg \
    001-cmake-mingw-fix.patch \
    002-reduce-warnings.patch \
    003-mingw-filesystem.patch \
    004-fix-build-with-qt-6.10.patch
}

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

  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
  cmake -Wno-dev \
    -GNinja \
    -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
    -DSC_USE_QTWEBENGINE=OFF \
    -DLIBSCSYNTH=ON \
    -DSUPERNOVA=ON \
    -DINSTALL_HELP=OFF \
    -DENABLE_TESTSUITE=OFF \
    -DSYSTEM_BOOST=ON \
    -DSYSTEM_PORTAUDIO=ON \
    -DSYSTEM_YAMLCPP=ON \
    -DBoost_USE_STATIC_LIBS=OFF \
    "${_extra_config[@]}" \
    -S SuperCollider-${pkgver}-Source \
    -B build-${MSYSTEM}

  cmake --build build-${MSYSTEM}
}

package() {
  DESTDIR="$pkgdir" cmake --install build-${MSYSTEM}

  install -Dm644 SuperCollider-${pkgver}-Source/COPYING \
    "${pkgdir}"${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE
}
