# Maintainer: funman300 <funman300@gmail.com>

pkgname=solitaire-quest
pkgver=0.1.0
pkgrel=1
pkgdesc='Cross-platform Klondike Solitaire with progression, achievements, and optional sync'
url='https://github.com/funman300/solitaire-quest'
license=('MIT')
arch=('x86_64')
makedepends=('cargo' 'rust')
depends=(
    'gcc-libs'
    'glibc'
    'alsa-lib'
    'libxkbcommon'
    'systemd-libs'   # libudev.so — required by Bevy input
)
source=("$pkgname-$pkgver.tar.gz::https://github.com/funman300/solitaire-quest/archive/v$pkgver.tar.gz")
b2sums=('SKIP')

prepare() {
    cd "solitaire-quest-$pkgver"
    export RUSTUP_TOOLCHAIN=stable
    cargo fetch --locked --target "$(rustc -Vv | grep host | cut -d' ' -f2)"
}

build() {
    cd "solitaire-quest-$pkgver"
    export RUSTUP_TOOLCHAIN=stable
    export CARGO_TARGET_DIR=target
    cargo build --frozen --release -p solitaire_app
}

check() {
    cd "solitaire-quest-$pkgver"
    export RUSTUP_TOOLCHAIN=stable
    # Only test the non-Bevy crates — Bevy integration tests require a GPU/display
    # which is not available in a clean build environment.
    cargo test --frozen -p solitaire_core -p solitaire_sync
}

package() {
    cd "solitaire-quest-$pkgver"
    install -Dm0755 -t "$pkgdir/usr/bin/" "target/release/solitaire_app"
    install -Dm0644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
