# Maintainer: Christian Rebischke <chris.rebischke@archlinux.org>
# Maintainer: Jiachen YANG <farseerfc@archlinux.org>
# Maintainer: Daniel M. Capella <polyzen@archlinux.org>
# Maintainer: T.J. Townsend <blakkheim@archlinux.org>
# Contributor: kpcyrd <git@rxv.cc>
# Contributor: quininer <quininer@live.com>

pkgname='alacritty'
pkgdesc="A cross-platform, GPU-accelerated terminal emulator"
pkgver=0.16.1
pkgrel=1
arch=('x86_64' 'aarch64')
url="https://github.com/alacritty/alacritty"
license=('Apache-2.0' 'MIT')
makedepends=('git' 'rust' 'cargo' 'cmake' 'ncurses' 'desktop-file-utils' 'gdb' 'libxcb' 'scdoc')
depends=('freetype2' 'fontconfig' 'libxi' 'libxcursor' 'libxkbcommon' 'libxkbcommon-x11' 'libxrandr')
checkdepends=('ttf-dejavu') # for monospace fontconfig test
optdepends=('ncurses: for alacritty terminfo database')
source=("git+$url.git#tag=v$pkgver?signed")
validpgpkeys=('4DAA67A9EA8B91FCC15B699C85CDAE3C164BA7B4'  # Christian Dürr <contact@christianduerr.com>
              'A56EF308A9F1256C25ACA3807EA8F8B94622A6A9') # Kirill Chibisov <contact@kchibisov.com>
sha256sums=('e339261179f7edcaf9c28b1646d5a6761e76eae62078f07c308e8efa9ace18bb')

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

build(){
  cd "$pkgname"
  CARGO_INCREMENTAL=0 cargo build --release --locked --offline
}

check(){
  cd "$pkgname"
  CARGO_INCREMENTAL=0 cargo test --locked --offline
}

package() {
  cd "$pkgname"
  desktop-file-install -m 644 --dir "$pkgdir/usr/share/applications/" "extra/linux/Alacritty.desktop"
  install -D -m755 "target/release/alacritty" "$pkgdir/usr/bin/alacritty"
  scdoc < "extra/man/alacritty.1.scd" | install -D -m644 /dev/stdin \
          "$pkgdir/usr/share/man/man1/alacritty.1"
  scdoc < "extra/man/alacritty.5.scd" | install -D -m644 /dev/stdin \
          "$pkgdir/usr/share/man/man5/alacritty.5"
  scdoc < "extra/man/alacritty-msg.1.scd" | install -D -m644 /dev/stdin \
          "$pkgdir/usr/share/man/man1/alacritty-msg.1"
  scdoc < "extra/man/alacritty-bindings.5.scd" | install -D -m644 /dev/stdin \
          "$pkgdir/usr/share/man/man5/alacritty-bindings.5"
  install -D -m644 "extra/linux/org.alacritty.Alacritty.appdata.xml" "$pkgdir/usr/share/metainfo/org.alacritty.Alacritty.appdata.xml"
  install -D -m644 "extra/completions/alacritty.bash" "$pkgdir/usr/share/bash-completion/completions/alacritty"
  install -D -m644 "extra/completions/_alacritty" "$pkgdir/usr/share/zsh/site-functions/_alacritty"
  install -D -m644 "extra/completions/alacritty.fish" "$pkgdir/usr/share/fish/vendor_completions.d/alacritty.fish"
  install -D -m644 "extra/logo/compat/alacritty-term.svg" "$pkgdir/usr/share/pixmaps/Alacritty.svg"
}
