summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 5cc50ae86461e1e9139c071fc8a722ab8268a7b7 (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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# Maintainer: Wojciech Dudek <wojtek.dudek.pl@gmail.com>

pkgname=waytermirror-git
pkgver=r311.ca32204
pkgrel=1
pkgdesc="Real-time Wayland screen mirroring to a terminal using Unicode braille characters, half-blocks, or ASCII. Includes bidirectional input forwarding, audio streaming (PipeWire), zooming, focus-follow, and optional NVIDIA CUDA acceleration (server-side)."
arch=('x86_64')
url="https://github.com/cyber-wojtek/waytermirror"
license=('MIT')

depends=(
    # Core runtime
    glibc
    gcc-libs

    # Wayland / compositor stack
    wayland
    wlroots0.19
    wayland-protocols
    wlr-protocols

    # Input
    libinput
    libevdev
    libwacom
    mtdev

    # IPC / multimedia
    pipewire

    # System / glib stack
    systemd-libs   # libudev
    glib2
    libffi
    pcre2

    # Compression / data
    lz4
    
    # JSON
    rapidjson

    # Opus
    opus
    opusfile

    # Sixel
    libsixel

    # FFMPEG (for H.264 encoding)
    ffmpeg

    # H264
    libx264

    # DRM (for GBM)
    libdrm

    # Mesa (for GBM)
    mesa

    # PNG (for PNG encoding)
    libpng

    # meson
    meson
)

makedepends=(
    git
    gcc
    make
    pkgconf
)

optdepends=(
    'cuda: GPU-accelerated rendering via NVIDIA CUDA'
)

provides=(waytermirror)
conflicts=(waytermirror)

source=("git+${url}.git")
sha256sums=('SKIP')

pkgver() {
    cd waytermirror
    printf "r%s.%s" \
        "$(git rev-list --count HEAD)" \
        "$(git rev-parse --short HEAD)"
}

build() {
    cd waytermirror

    # Decide CUDA mode
    local cuda=false

    if [[ -n "$WAYTERMIRROR_CUDA" ]]; then
        cuda=true
    elif [[ -n "$WAYTERMIRROR_NO_CUDA" ]]; then
        cuda=false
    elif command -v nvcc &>/dev/null; then
        cuda=true
    fi

    if $cuda; then
        echo "==> Building with CUDA support"
        meson setup builddir --buildtype=release -Dnvidia_cuda=true
    else
        echo "==> Building CPU-only"
        meson setup builddir --buildtype=release -Dnvidia_cuda=false
    fi
}

package() {
    cd waytermirror
    meson install -C builddir --destdir "$pkgdir"
}