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

_realname=alacritty
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=0.13.2
pkgrel=1
pkgdesc="A cross-platform, OpenGL terminal emulator (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url="https://alacritty.org"
msys2_repository_url="https://github.com/alacritty/alacritty"
license=('spdx:Apache-2.0 OR MIT')
msys2_references=(
  'archlinux: alacritty'
  'purl: pkg:cargo/alacritty'
)
makedepends=("${MINGW_PACKAGE_PREFIX}-rust"
             "${MINGW_PACKAGE_PREFIX}-pkgconf"
             "${MINGW_PACKAGE_PREFIX}-ncurses"
             "${MINGW_PACKAGE_PREFIX}-desktop-file-utils"
             "${MINGW_PACKAGE_PREFIX}-scdoc"
             "${MINGW_PACKAGE_PREFIX}-freetype"
             "${MINGW_PACKAGE_PREFIX}-fontconfig"
             "${MINGW_PACKAGE_PREFIX}-expat")
checkdepends=("${MINGW_PACKAGE_PREFIX}-ttf-dejavu")
optdepends=("${MINGW_PACKAGE_PREFIX}-ncurses: for alacritty terminfo database")
source=("https://github.com/alacritty/alacritty/archive/v${pkgver}/${_realname}-${pkgver}.tar.gz")
validpgpkeys=('4DAA67A9EA8B91FCC15B699C85CDAE3C164BA7B4'  # Christian Dürr <contact@christianduerr.com>
              'A56EF308A9F1256C25ACA3807EA8F8B94622A6A9') # Kirill Chibisov <contact@kchibisov.com>
sha256sums=('e9a54aabc92bbdc25ab1659c2e5a1e9b76f27d101342c8219cc98a730fd46d90')
noextract=("${_realname}-${pkgver}.tar.gz")

prepare() {
  tar -xzf "${_realname}-${pkgver}.tar.gz"
  cd "${srcdir}/${_realname}-${pkgver}"

  cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
}

build() {
  cd "${srcdir}/${_realname}-${pkgver}"

  WINAPI_NO_BUNDLED_LIBRARIES=1 \
    cargo build --release --locked

  scdoc < "extra/man/${_realname}.1.scd" | gzip > "${_realname}.1.gz"
  scdoc < "extra/man/${_realname}-msg.1.scd" | gzip > "${_realname}-msg.1.gz"
  scdoc < "extra/man/${_realname}.5.scd" | gzip > "${_realname}.5.gz"
  scdoc < "extra/man/${_realname}-bindings.5.scd" | gzip > "${_realname}-bindings.5.gz"
}

check() {
  cd "${srcdir}/${_realname}-${pkgver}"

  WINAPI_NO_BUNDLED_LIBRARIES=1 \
    cargo.exe test --release --locked
}

package() {
  cd "${srcdir}/${_realname}-${pkgver}"

  install -Dm755 "target/release/${_realname}.exe" "${pkgdir}${MINGW_PREFIX}/bin/${_realname}.exe"
  install -Dm644 alacritty{,-msg}.1.gz -t "${pkgdir}${MINGW_PREFIX}/share/man/man1/"
  install -Dm644 alacritty{,-bindings}.5.gz -t "${pkgdir}${MINGW_PREFIX}/share/man/man5/"
  install -Dm644 "extra/completions/alacritty.bash" "${pkgdir}${MINGW_PREFIX}/share/bash-completion/completions/alacritty"
  install -Dm644 "extra/completions/_alacritty" "${pkgdir}${MINGW_PREFIX}/share/zsh/site-functions/_alacritty"
  install -Dm644 "extra/completions/alacritty.fish" "${pkgdir}${MINGW_PREFIX}/share/fish/vendor_completions.d/alacritty.fish"
  install -Dm644 "extra/logo/alacritty-term.svg" "${pkgdir}${MINGW_PREFIX}/share/pixmaps/Alacritty.svg"
}
