# Maintainer: Christoph Reiter <reiter.christoph@gmail.com>

_realname=quickjs
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=2025.09.13
pkgrel=1
pkgdesc='Small and embeddable JavaScript engine (mingw-w64)'
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url=https://bellard.org/quickjs
msys2_repository_url="https://github.com/bellard/quickjs"
license=('spdx:MIT')
depends=(
  "${MINGW_PACKAGE_PREFIX}-cc-libs"
  "${MINGW_PACKAGE_PREFIX}-libwinpthread"
)
makedepends=(
  "${MINGW_PACKAGE_PREFIX}-cc"
  "make"
)
_pv="${_realname}-${pkgver//./-}"
source=("https://bellard.org/quickjs/${_pv}.tar.xz"
        "0001-cflags.patch")
sha256sums=('6f1f322aea3bb3a90858db85c9fe717013fde4df7dfcafe2f57e78f5bb4b4a0c'
            'd7f6717f8001610c6fb2ed51327ba19d4facc9453ffd86a2a23da1ed5e7e1a2d')

prepare() {
  cd "${_pv}"

  patch -p1 < ../0001-cflags.patch
}

build() {
  declare -a _extra_config

  if [[ $MINGW_PACKAGE_PREFIX == *-clang-* ]]; then
    _extra_config+=("CONFIG_CLANG=1")
  fi

  # Bump the stack size, otherwise there is a stack overflow with yt-dlp for example
  # (only with clang builds for me)
  LDFLAGS+=" -Wl,--stack,2097152"

  make -C "${_pv}" PREFIX="${MINGW_PREFIX}" EXTRA_CFLAGS="$CFLAGS" EXTRA_LDFLAGS="$LDFLAGS" "${_extra_config[@]}"
}

package() {
  make -C "${_pv}" PREFIX="${MINGW_PREFIX}" DESTDIR="${pkgdir}" install

  install -Dm644 -t "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}" "${_pv}"/doc/*.*
}
