_realname=ghdl
pkgbase="mingw-w64-${_realname}"
pkgname='__placeholder__'
pkgver=1.0.0.r348.g7d5c6c48
pkgrel=1
pkgdesc='GHDL: the open-source analyzer, compiler, simulator and (experimental) synthesizer for VHDL'
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
license=('GPL2+')
url='https://github.com/ghdl'
groups=("${MINGW_PACKAGE_PREFIX}-eda")
checkdepends=("${MINGW_PACKAGE_PREFIX}-python")
provides=("${MINGW_PACKAGE_PREFIX}-${_realname}")
source=("${_realname}::git://github.com/ghdl/ghdl.git#commit=7d5c6c48")
sha512sums=('SKIP')

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

build() {
  [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH}
  mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH}

  if [ "$CARCH" = "i686" ]; then
    echo 'Configuring ghdl-mcode...'
    MSYS2_ARG_CONV_EXCL="--prefix" ../${_realname}/configure \
        --prefix=${MINGW_PREFIX} \
        --enable-checks \
        --enable-libghdl \
        --enable-synth \
        LDFLAGS="-static -Wl,--stack=8388608"
  fi

  if [ "$CARCH" = "x86_64" ]; then
    echo 'Configuring ghdl-llvm...'
    export CC=clang
    export 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"
  fi

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

check() {
  cd "${srcdir}/build-${CARCH}"
  make install.vpi.local
  make CC=gcc test
}

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

  sed -i -e 's@.*\(/mingw.*\)@\1@' "${_lib}"/libghdl.link

  if [ "${CARCH}" = "x86_64" ]; then
    sed -i -e 's@^-L.*\(/mingw.*\)@-L\1@' "${_lib}"/ghdl/grt.lst
  fi

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

if [ "${CARCH}" = "x86_64" ]; then
  pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-llvm")
  makedepends=("${MINGW_PACKAGE_PREFIX}-clang")
  package() {
    pkgdesc="$pkgdesc (LLVM backend) (mingw-w64)"
    depends=(
      "${MINGW_PACKAGE_PREFIX}-gcc-ada"
      "${MINGW_PACKAGE_PREFIX}-clang"
      "${MINGW_PACKAGE_PREFIX}-llvm"
      "${MINGW_PACKAGE_PREFIX}-zlib"
    )
    options=(!emptydirs)
    _package
  }
fi
if [ "${CARCH}" = "i686" ]; then
  pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}-mcode")
  package() {
    pkgdesc="$pkgdesc (mcode backend) (mingw-w64)"
    depends=(
      "${MINGW_PACKAGE_PREFIX}-gcc-ada"
      "${MINGW_PACKAGE_PREFIX}-zlib"
    )
    _package
  }
fi
