# Maintainer: David Heinemeier Hansson <david@hey.com>

pkgname=gliff
pkgver=0.1.0
pkgrel=1
pkgdesc="Hyprland remote desktop over SSH (Vulkan Video, 4:4:4)"
arch=('x86_64')
url="https://github.com/kevinmcconnell/gliff"
license=('MIT')
depends=('gcc-libs' 'glibc' 'wayland' 'libxkbcommon' 'libdrm' 'mesa'
         'gtk4>=4.14' 'libadwaita>=1.5' 'vulkan-icd-loader' 'openssh')
makedepends=('cargo' 'pkgconf')
optdepends=('vulkan-radeon: Vulkan Video on AMD'
            'vulkan-intel: Vulkan Video on Intel'
            'vulkan-tools: vulkaninfo for debugging'
            'vulkan-validation-layers: driver call validation for development')
options=('!debug')

# Upstream only publishes a rolling prerelease; pin its source for reproducible builds.
_commit=2edbfba52780c7ace15dbb05ca92177f493d4bc9
source=("$pkgname-$_commit.tar.gz::$url/archive/$_commit.tar.gz")
sha256sums=('2d75961085a72fb8e34149de63e312a7336daa70fd6e157e30c2cd08c14eb1c7')

prepare() {
  cd "$pkgname-$_commit"

  cargo fetch --locked --target "$CARCH-unknown-linux-gnu"
}

build() {
  cd "$pkgname-$_commit"

  export CARGO_TARGET_DIR=target
  cargo build --frozen --release
}

check() {
  cd "$pkgname-$_commit"

  export CARGO_TARGET_DIR=target
  cargo test --frozen --release --workspace
}

package() {
  cd "$pkgname-$_commit"

  install -Dm755 target/release/gliff "$pkgdir/usr/bin/gliff"
  install -Dm755 target/release/gliff-server "$pkgdir/usr/bin/gliff-server"
  install -Dm755 target/release/gliff-probe "$pkgdir/usr/bin/gliff-probe"
  install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
  install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
  install -Dm644 docs/hardware-quirks.md "$pkgdir/usr/share/doc/$pkgname/hardware-quirks.md"
}
