# Maintainer: Maksim Bondarenkov <maksapple2306@gmail.com>

_realname=tree-sitter-c
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=0.24.1
pkgrel=2
pkgdesc='C grammar for tree-sitter (mingw-w64)'
arch=('any')
mingw_arch=('ucrt64' 'clang64' 'clangarm64')
url='https://github.com/tree-sitter/tree-sitter-c'
msys2_repository_url='https://github.com/tree-sitter/tree-sitter-c'
msys2_references=(
  'archlinux: tree-sitter-c'
)
license=('spdx:MIT')
makedepends=(
  "${MINGW_PACKAGE_PREFIX}-cc"
  "${MINGW_PACKAGE_PREFIX}-cmake"
  "${MINGW_PACKAGE_PREFIX}-tree-sitter"
)
source=("${_realname}-${pkgver}.tar.gz::${msys2_repository_url}/releases/download/v${pkgver}/${_realname}.tar.gz")
sha256sums=('5a82a33dc5483f46d9a571f8ee769f6825752202cc2694299007a9da9417b9e5')
noextract=("${_realname}-${pkgver}.tar.gz")

prepare() {
  mkdir -p "${_realname}-${pkgver}"
  tar -xf "${_realname}-${pkgver}.tar.gz" -C "${_realname}-${pkgver}" || true
}

build() {
  MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX" \
    cmake \
      -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \
      -Wno-dev \
      -DCMAKE_BUILD_TYPE=None \
      -DCMAKE_SHARED_LIBRARY_SUFFIX_C=.so \
      -DCMAKE_INSTALL_BINDIR=lib \
      -S "${_realname}-${pkgver}" \
      -B "build-${MSYSTEM}"

  cmake --build "build-${MSYSTEM}"
}

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

  # To add library to neovim runtime path
  mkdir -p "${pkgdir}${MINGW_PREFIX}/lib/nvim/parser"
  cp "${pkgdir}${MINGW_PREFIX}/lib/lib${_realname}.so" "${pkgdir}${MINGW_PREFIX}/lib/nvim/parser/${_realname#tree-sitter-}.so"

  install -Dm644 "${_realname}-${pkgver}"/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
}
