summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: b882e9e64d4b43dc5b006a63d2df0e6756526b4c (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
# Maintainer: Jas Singh <singh.jaskir@outlook.com>

pkgname=wayle-git
_pkgname=wayle
pkgver=0.1.0.r0.ga1a31cf
pkgrel=1
pkgdesc="A configurable desktop shell for Wayland compositors"
arch=('x86_64')
url="https://github.com/wayle-rs/wayle"
license=('MIT')
provides=("${_pkgname}=${pkgver}")
conflicts=("${_pkgname}" "${_pkgname}-bin")
depends=(
    'gtk4'
    'gtk4-layer-shell'
    'gtksourceview5'
    'libpulse'
    'fftw'
    'libpipewire'
)
makedepends=(
    'clang'
    'git'
    'rust'
)
optdepends=(
    'upower: battery module'
    'networkmanager: network module'
    'bluez: bluetooth module'
    'power-profiles-daemon: power profiles module'
    'swww: wallpaper rendering'
    'matugen: Material You color extraction'
    'wallust: color extraction'
    'python-pywal: color extraction'
)
options=(!lto)
source=("${_pkgname}::git+${url}.git")
sha256sums=('SKIP')

pkgver() {
    cd "${_pkgname}"
    git describe --long --tags 2>/dev/null | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' ||
    printf "0.0.0.r%s.g%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

prepare() {
    cd "${_pkgname}"
    export RUSTUP_TOOLCHAIN=stable
    cargo fetch --target "$(rustc -vV | sed -n 's/host: //p')"
}

build() {
    cd "${_pkgname}"
    export RUSTUP_TOOLCHAIN=stable
    export CARGO_TARGET_DIR=target
    cargo build --release
}

package() {
    cd "${_pkgname}"

    install -Dm755 "target/release/${_pkgname}" "${pkgdir}/usr/bin/${_pkgname}"
    install -Dm755 "target/release/${_pkgname}-settings" "${pkgdir}/usr/bin/${_pkgname}-settings"
    install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"

    install -dm755 "${pkgdir}/usr/share/wayle/icons"
    cp -r resources/icons/hicolor "${pkgdir}/usr/share/wayle/icons/"

    target/release/${_pkgname} completions bash > wayle.bash
    target/release/${_pkgname} completions zsh > _wayle
    target/release/${_pkgname} completions fish > wayle.fish

    install -Dm644 wayle.bash "${pkgdir}/usr/share/bash-completion/completions/wayle"
    install -Dm644 _wayle "${pkgdir}/usr/share/zsh/site-functions/_wayle"
    install -Dm644 wayle.fish "${pkgdir}/usr/share/fish/vendor_completions.d/wayle.fish"

    install -Dm644 resources/wayle.service "${pkgdir}/usr/lib/systemd/user/wayle.service"
    install -Dm644 resources/com.wayle.settings.desktop \
        "${pkgdir}/usr/share/applications/com.wayle.settings.desktop"
    install -Dm644 resources/wayle-settings.svg \
        "${pkgdir}/usr/share/icons/hicolor/scalable/apps/wayle-settings.svg"
}