summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: ea08047c35010ff4bbb8cf145e47ddb7c07967ae (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
# Maintainer: Aleksana QwQ <me@aleksana.moe>
# Maintainer: q234 rty <q23456yuiop at gmail dot com>
# Contributor: ThatOneCalculator <kainoa@t1c.dev>
# Contributor: lilydjwg <lilydjwg@gmail.com>
# Contributor: FabioLolix

_pkgname="hyprland"
pkgname="${_pkgname}-hidpi-xprop-git"
pkgver=0.39.1.r63.34413d1f
pkgrel=1
pkgdesc="A dynamic tiling Wayland compositor based on wlroots that doesn't sacrifice on its looks."
arch=("i686" "x86_64" "arm" "armv6h" "armv7h" "aarch64")
url="https://github.com/hyprwm/Hyprland"
license=('BSD-3-Clause')
depends=(
	libxcb
	xcb-proto
	xcb-util
	xcb-util-keysyms
	libxfixes
	libx11
	libxcomposite
	xorg-xinput
	libxrender
	pixman
	wayland-protocols
	cairo
	pango
	polkit
	glslang
	libdisplay-info
	libliftoff
	libinput
	libxcb
	libxkbcommon
	opengl-driver
	pixman
	wayland
	xcb-util-errors
	xcb-util-renderutil
	xcb-util-wm
	xcb-util-image
	seatd
	xorg-xwayland-hidpi-xprop
	tomlplusplus
	hyprlang
	hyprcursor
)
makedepends=(
	git
	cmake
	ninja
	gcc
	meson
	wayland-protocols
	xorgproto
	hyprwayland-scanner
)
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"
        "0001-Revert-compositor-send-WL_SURFACE_ERROR_INVALID_SIZE.patch"
        "0001-xwayland-support-HiDPI-scale.patch"
        "0002-Fix-configure_notify-event.patch"
        "0003-Fix-size-hints-under-Xwayland-scaling.patch")
conflicts=("${_pkgname}")
provides=("${_pkgname}=${pkgver}")
sha256sums=('SKIP'
            'SKIP'
            'SKIP'
            'SKIP'
            '7758eb3ca20b657e53b01c239c5234898342322f41af1cd9e9a8841fca2d5e2b'
            'b717f2f61aeb3bf670fe60424a8cd638d51e73dc66bd84277fada289bf2330d8'
            'acced048ce6359f4f9f894ee648e4c47fd5093db3fce285b60f73b9f80bb7ac9'
            '4e6b32ea58ecfd6a2cce7e5ddf09160136714de8b58e41a9919b30e06e998178')
options=(debug)

pkgver() {
	git -C "${_pkgname}" describe --long --tags | sed 's/^v//;s/\([^-]*-\)g/r\1/;s/-/./g'
}

prepare() {
	cd "${srcdir}/${_pkgname}"
	rm -rf subprojects/wlroots-hyprland subprojects/hyprland-protocols
	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 -c protocol.file.allow=always submodule update subprojects/wlroots-hyprland
	git -c protocol.file.allow=always submodule update subprojects/hyprland-protocols
	git -c protocol.file.allow=always submodule update subprojects/udis86
	cd subprojects/wlroots-hyprland
	patch -Np1 -i "${srcdir}"/0001-Revert-compositor-send-WL_SURFACE_ERROR_INVALID_SIZE.patch
	patch -Np1 -i "${srcdir}"/0001-xwayland-support-HiDPI-scale.patch
	patch -Np1 -i "${srcdir}"/0002-Fix-configure_notify-event.patch
	patch -Np1 -i "${srcdir}"/0003-Fix-size-hints-under-Xwayland-scaling.patch
}

build() {
	cd "${srcdir}/${_pkgname}"
	mkdir -p build && cd build
	cmake -G Ninja -DCMAKE_BUILD_TYPE=None -DCMAKE_SKIP_RPATH=ON -DCMAKE_INSTALL_PREFIX=/usr ..
	ninja
}

package() {
	cd "${srcdir}/${_pkgname}"
	meson install -C subprojects/wlroots-hyprland/build --destdir "${pkgdir}/tmpwlr"
	install -Dm755 build/Hyprland -t "${pkgdir}/usr/bin"
	pushd "${pkgdir}/usr/bin" && ln -sf Hyprland hyprland && popd
	install -Dm755 build/hyprctl/hyprctl -t "${pkgdir}/usr/bin"
	install -Dm755 build/hyprpm/hyprpm -t "${pkgdir}/usr/bin"
	install -Dm644 assets/*.png -t "${pkgdir}/usr/share/hyprland"
	install -Dm644 example/hyprland.desktop -t "${pkgdir}/usr/share/wayland-sessions"
	install -Dm644 example/hyprland.conf -t "${pkgdir}/usr/share/hyprland"
	install -Dm644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
	install -Dm644 subprojects/wlroots-hyprland/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE-wlroots-hyprland"
	install -Dm644 subprojects/udis86/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE-udis86"
	install -Dm644 docs/*.1 -t "${pkgdir}/usr/share/man/man1"
	for cmd in hyprctl hyprpm; do
		install -Dm644 "${cmd}/${cmd}.bash" "${pkgdir}/usr/share/bash-completion/completions/$cmd"
		install -Dm644 "${cmd}/${cmd}.zsh" "${pkgdir}/usr/share/zsh/site-functions/_$cmd"
		install -Dm644 "$cmd/$cmd.fish" -t "${pkgdir}/usr/share/fish/vendor_completions.d/"
	done
	install -d "${pkgdir}/usr/include/hyprland/protocols"
	install -d "${pkgdir}/usr/include/hyprland/wlroots-hyprland"
	cp -R src ${pkgdir}/usr/include/hyprland/
	cp -R ${pkgdir}/tmpwlr/usr/local/include/* ${pkgdir}/usr/include/hyprland/wlroots-hyprland/
	find ${pkgdir}/usr/include/hyprland/ -type f ! -name '*.h*' -delete
	rm -rf ${pkgdir}/tmpwlr
	cp protocols/*.h* ${pkgdir}/usr/include/hyprland/protocols
	install -Dm644 build/hyprland.pc -t "${pkgdir}/usr/share/pkgconfig"
}