_realname=ghdl
pkgbase="mingw-w64-${_realname}"
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-llvm")
pkgver=3.0.0.r750.g2135cbf14
pkgrel=1
pkgdesc='GHDL: the open-source analyzer, compiler, simulator and (experimental) synthesizer for VHDL (LLVM backend) (mingw-w64)'
arch=('any')
mingw_arch=('mingw64' 'ucrt64')
license=('spdx:GPL-2.0-or-later')
url='https://github.com/ghdl/ghdl'
groups=("${MINGW_PACKAGE_PREFIX}-eda")
provides=("${MINGW_PACKAGE_PREFIX}-${_realname}")
makedepends=(
  "${MINGW_PACKAGE_PREFIX}-clang"
  "${MINGW_PACKAGE_PREFIX}-autotools"
  "git"
)
depends=(
  "${MINGW_PACKAGE_PREFIX}-gcc-ada"
)
checkdepends=("${MINGW_PACKAGE_PREFIX}-python-pytest")
options=(!emptydirs)
_commit="2135cbf1458bd1b8b8f42bda81222ab57bd66de6"
source=("${_realname}::git+https://github.com/ghdl/ghdl.git#commit=${_commit}")
sha512sums=('SKIP')

pkgver() {
  cd "ghdl"
  git describe --long "${_commit}" | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//g'
}

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

  CC=clang \
  CXX=clang++ \
  MSYS2_ARG_CONV_EXCL="--prefix" \
  ../${_realname}/configure \
      --prefix=${MINGW_PREFIX} \
      --enable-checks \
      --enable-libghdl \
      --enable-synth \
      --with-llvm-config="llvm-config --link-static" \
      LDFLAGS="-static"

  make GNATMAKE="gnatmake -j$(nproc)"
}

check() {
  cd "${srcdir}/build-${MSYSTEM}"
  make install.vpi.local
  make test
}

package() {
  cd "${srcdir}"/build-${MSYSTEM}
  _lib="${pkgdir}${MINGW_PREFIX}"/lib
  mkdir -p "${_lib}"
  make DESTDIR="${pkgdir}" install

  local PREFIX_DEPS=$(cygpath -am ${MINGW_PREFIX})
  sed -s "s|${PREFIX_DEPS}|${MINGW_PREFIX}|g" -i "${_lib}"/libghdl.link

  sed -s "s|${PREFIX_DEPS}|${MINGW_PREFIX}|g" -i "${_lib}"/ghdl/grt.lst

  # License
  install -Dm644 ${srcdir}/${_realname}/doc/licenses.rst ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/licenses.rst
}
