summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: bf0277fcee956e63b05b0d6481310c42017b3fb6 (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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# Maintainer: dasnacl <aur@dasnacl.de>
# Modified based on hyprland-nvidia-nosystemd-git

pkgname=hyprland-nosystemd-git
pkgver=0.39.0.r12.g79a139c9
pkgrel=1
pkgdesc="A dynamic tiling Wayland compositor based on wlroots that doesn't sacrifice on its looks. (w/o systemd)"
arch=(x86_64 aarch64)
url="https://github.com/hyprwm/Hyprland"
license=('BSD')
depends=(
    cairo
    cpio
    gcc-libs
    glib2
    glibc
    glslang
    hyprlang
    hyprcursor
    libdisplay-info
    libdrm
    libglvnd
    libinput
    libliftoff
    libx11
    libxcb
    libxcomposite
    libxfixes
    libxkbcommon
    libxrender
    opengl-driver
    pango
    pixman
    polkit
    seatd
    tomlplusplus
    vulkan-icd-loader
    vulkan-validation-layers
    wayland
    wayland-protocols
    xcb-proto
    xcb-util
    xcb-util-errors
    xcb-util-keysyms
    xcb-util-renderutil
    xcb-util-wm
    xorg-xinput
    xorg-xwayland
)
depends+=(libdisplay-info.so)
makedepends=(
    cmake
    gdb
    git
    jq
    meson
    ninja
    vulkan-headers
    pkgconf
    xorgproto
)
provides=("hyprland=${pkgver%%.r*}")
conflicts=(hyprland)
source=("$pkgname::git+https://github.com/hyprwm/Hyprland.git"
  "git+https://github.com/hyprwm/wlroots-hyprland.git"
  "git+https://github.com/hyprwm/hyprland-protocols.git"
  "git+https://github.com/canihavesomecoffee/udis86.git"
  "git+https://github.com/wolfpld/tracy.git"
)
b2sums=(
  'SKIP'
  'SKIP'
  'SKIP'
  'SKIP'
  'SKIP'
)

pick_mr() {
    git pull origin pull/$1/head --no-edit
}

pkgver() {
    cd "$srcdir/$pkgname"
    if git describe --long --tags >/dev/null 2>&1; then
        git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
    else
        printf 'r%s.%s' "$(git rev-list --count HEAD)" "$(git describe --always)"
    fi
}

prepare() {
    cd hyprland-nosystemd-git
    git submodule init
    git config submodule.subprojects/wlroots-hyprland.url "$srcdir/wlroots-hyprland"
    git config submodule.subprojects/hyprland-protocols.url "$srcdir/hyprland-protocols"
    git config submodule.subprojects/udis86.url "$srcdir/udis86"
    git config submodule.subprojects/tracy.url "$srcdir/tracy"
    git -c protocol.file.allow=always submodule update

    git -C subprojects/wlroots-hyprland reset --hard
    sed -E -i -e "s/(soversion = .*$)/soversion = 13032/g" subprojects/wlroots-hyprland/meson.build
}

build() {
    cd hyprland-nosystemd-git

    meson setup build \
      --prefix     /usr \
      --libexecdir lib \
      --sbindir    bin \
      --buildtype  release \
      --wrap-mode  nodownload \
      -D           b_lto=true \
      -D           b_pie=true \
      -D           default_library=shared \
      -D           xwayland=enabled \
      -D           systemd=disabled

    meson compile -C build
}

package() {
    cd hyprland-nosystemd-git

    meson install -C build \
      --destdir "$pkgdir" \
      --skip-subprojects hyprland-protocols

    mkdir -p "$pkgdir/usr/include/hyprland/wlroots"
    mv "$pkgdir/usr/include/wlr" "$pkgdir/usr/include/hyprland/wlroots"

    # resolve conflicts with system wlr
    rm -f "$pkgdir/usr/lib/libwlroots.so"
    rm -rf "$pkgdir/usr/lib/pkgconfig"

    # FIXME: remove after xdg-desktop-portal-hyprland disowns hyprland-portals.conf

    rm -rf "$pkgdir/usr/share/xdg-desktop-portal"

    # license
    install -Dm0644 -t "$pkgdir/usr/share/licenses/${pkgname}" LICENSE
}