summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 60feec1715bf2a800f39656aadbe92958c64e6ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# Maintainer: Saiem Saeed <saiem.saeed7 at gmail dot com>

pkgname=sayall-git
pkgver=0.1.0.r1.g0397cd6
pkgrel=1
pkgdesc='Wayland voice dictation daemon and recording HUD (development version)'
arch=('x86_64')
url='https://github.com/saiemsaeed/sayall'
license=('MIT')
depends=(
  'ca-certificates'
  'gcc-libs'
  'glibc'
  'gtk4'
  'gtk4-layer-shell'
  'libnotify'
  'pipewire-audio'
  'wl-clipboard'
  'wtype'
)
makedepends=('cargo' 'git' 'pkgconf' 'python' 'zig')
provides=("sayall=$pkgver")
conflicts=('sayall' 'sayall-bin')
options=('!debug')
install='sayall-git.install'
source=("sayall::git+$url.git")
sha256sums=('SKIP')

pkgver() {
  cd "$srcdir/sayall"
  git describe --long --tags --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}

prepare() {
  cd "$srcdir/sayall"
  export CARGO_HOME="$srcdir/cargo-home"
  export ZIG_GLOBAL_CACHE_DIR="$srcdir/zig-cache"
  cargo fetch --locked --manifest-path ui/linux/Cargo.toml
  zig build --fetch=all
}

build() {
  cd "$srcdir/sayall"
  export CARGO_HOME="$srcdir/cargo-home"
  export CARGO_TARGET_DIR="$srcdir/cargo-target"
  export ZIG_GLOBAL_CACHE_DIR="$srcdir/zig-cache"
  zig build -Doptimize=ReleaseFast -Dversion="$pkgver"
  cargo build --frozen --release --manifest-path ui/linux/Cargo.toml
}

check() {
  cd "$srcdir/sayall"
  export CARGO_HOME="$srcdir/cargo-home"
  export CARGO_TARGET_DIR="$srcdir/cargo-target"
  export ZIG_GLOBAL_CACHE_DIR="$srcdir/zig-cache"
  zig build test
  cargo test --frozen --manifest-path ui/linux/Cargo.toml
}

package() {
  local src="$srcdir/sayall"

  install -Dm755 -t "$pkgdir/usr/bin" \
    "$src/zig-out/bin/sayall" \
    "$srcdir/cargo-target/release/sayall-hud"

  install -Dm644 -t "$pkgdir/usr/lib/systemd/user" \
    "$src/sayall.service" \
    "$src/sayall-hud.service"
  sed -i 's|%h/.local/bin/|/usr/bin/|g' \
    "$pkgdir/usr/lib/systemd/user/sayall.service" \
    "$pkgdir/usr/lib/systemd/user/sayall-hud.service"

  install -Dm644 -t "$pkgdir/usr/share/doc/sayall" \
    "$src/README.md" \
    "$src/CHANGELOG.md"
  install -Dm644 "$src/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
  install -Dm644 "$src/licenses/websocket.zig-LICENSE" \
    "$pkgdir/usr/share/licenses/$pkgname/websocket.zig-LICENSE"
  (
    cd "$src"
    CARGO_HOME="$srcdir/cargo-home" CARGO_NET_OFFLINE=true \
      python scripts/third-party-licenses.py \
      "$pkgdir/usr/share/licenses/$pkgname/RUST-THIRD-PARTY-LICENSES.txt"
  )
}