# Maintainer: Vladislav Nepogodin <nepogodin.vlad@gmail.com>
# Contributor: Vasiliy Stelmachenok <ventureo@yandex.ru>

pkgname=chwd
pkgver=1.24.1
pkgrel=1
pkgdesc="CachyOS Hardware Detection Tool"
arch=(x86_64)
url="https://github.com/cachyos/chwd"
license=(GPL-3.0-or-later)
depends=('gcc-libs' 'pciutils' 'lua' 'pacman' 'libusb' 'libusb-1.0.so')
makedepends=('git' 'cargo' 'lld' 'clang' 'llvm')
provides=('chwd-db')
replaces=('chwd-db')
conflicts=('chwd-db')
groups=('cachyos')
source=("chwd::git+$url.git#tag=${pkgver}?signed")
sha256sums=('0c4d343bed67d57aa33c7a15b3bab5222292ff28102d113e445d66b1c9f107c0')
validpgpkeys=(
  'B1B70BB1CD56047DEF31DE2EB62C3D10C54D5DA9'  # Vladislav Nepogodin <nepogodin.vlad@gmail.com>
)

prepare() {
  cd "$srcdir/$pkgname"

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

  cd scripts/chwd-kernel
  cargo fetch --locked --target "$CARCH-unknown-linux-gnu"
}

build() {
  cd "$srcdir/$pkgname"

  # Compile with clang
  export AR=llvm-ar
  export CC=clang
  export CXX=clang++
  export NM=llvm-nm
  export RANLIB=llvm-ranlib

  export RUSTFLAGS="-Cembed-bitcode -C opt-level=3 -Ccodegen-units=1 -Clinker=clang -C link-arg=-flto -Clink-arg=-fuse-ld=/usr/bin/ld.lld"

  cd scripts/chwd-kernel
  cargo build --release --frozen

  cd ../../

  cargo build --release --frozen
}

package() {
  cd "$srcdir/$pkgname"

  install -Dm755 "target/release/chwd" "$pkgdir/usr/bin/chwd"
  install -Dm755 scripts/chwd "$pkgdir"/var/lib/chwd/scripts/chwd

  install -Dm644 target/release/build/chwd-*/out/chwd.bash "$pkgdir/usr/share/bash-completion/completions/chwd"
  install -Dm644 target/release/build/chwd-*/out/chwd.fish "$pkgdir/usr/share/fish/vendor_completions.d/chwd.fish"
  install -Dm644 target/release/build/chwd-*/out/_chwd "$pkgdir/usr/share/zsh/site-functions/_chwd"

  install -d -m755 "$pkgdir"/var/lib/chwd/{db,local}/pci

  # install ids
  install -d -m755 "$pkgdir"/var/lib/chwd/ids
  cp -r ids/* "$pkgdir"/var/lib/chwd/ids

  cp -r profiles/pci "$pkgdir"/var/lib/chwd/db/
  cp -r profiles/usb "$pkgdir"/var/lib/chwd/db/

  cd scripts/chwd-kernel
  install -Dm755 "target/release/chwd-kernel" "$pkgdir/usr/bin/chwd-kernel"
}

# vim:set sw=2 sts=2 et:
