summaryrefslogtreecommitdiff
path: root/user/mesa/APKBUILD
blob: 7af2e17cddb949940cb82a9315ae601c4f470d66 (plain) (blame)
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=mesa
pkgver=19.3.4
_llvmver=8
pkgrel=0
pkgdesc="Mesa DRI OpenGL library"
url="https://www.mesa3d.org"
arch="all"
options="!check"  # No test suite.
license="MIT AND X11 AND SGI-B-2.0 AND BSL-1.0 AND LGPL-2.1+"
depends=""
depends_dev="libdrm-dev libxcb-dev libxdamage-dev libxext-dev libxshmfence-dev
	xorgproto-dev"
makedepends="$depends_dev bison eudev-dev expat-dev flex libelf-dev
	libva-dev libvdpau-dev libx11-dev libxfixes-dev libxrandr-dev libxt-dev
	libxv-dev libxvmc-dev libxxf86vm-dev llvm$_llvmver-dev makedepend meson
	ninja python3 py3-libxml2 py3-mako zlib-dev"
subpackages="$pkgname-dev $pkgname-dri
	$pkgname-glapi $pkgname-egl $pkgname-gl $pkgname-gles
	$pkgname-xatracker $pkgname-osmesa $pkgname-gbm"
#	requires glslang: $pkgname-vulkan-overlay
source="https://mesa.freedesktop.org/archive/mesa-$pkgver.tar.xz
	amdgpu-pthread-header.patch
	big-endian-flipping.patch
	intel-vulkan.patch
	musl-fixes.patch
	musl-fix-includes.patch
	no-tls.patch
	time64.patch
	"

_dri_driverdir=/usr/lib/xorg/modules/dri
_dri_drivers="r200,nouveau"
_gallium_drivers="r300,r600,radeonsi,nouveau,freedreno,swrast,virgl"
_vulkan_drivers="amd"

case "$CARCH" in
x86* | pmmx)
	_dri_drivers="${_dri_drivers},i965"
	_gallium_drivers="${_gallium_drivers},i915,svga"
	_vulkan_drivers="${_vulkan_drivers},intel"
	;;
aarch64 | arm*)
	_gallium_drivers="${_gallium_drivers},vc4,freedreno,tegra,kmsro,v3d,lima,panfrost,etnaviv"
	case "$CARCH" in
	armhf) CFLAGS="$CFLAGS -mfpu=neon";;
	esac
	;;
ppc64)
	_arch_conf="-Dpower8=false"
	;;
esac

build() {
	meson \
		-Dprefix=/usr \
		-Ddri-drivers-path=$_dri_driverdir \
		-Dplatforms=x11,drm,surfaceless \
		-Ddri-drivers=$_dri_drivers \
		-Dgallium-drivers=$_gallium_drivers \
		-Dvulkan-drivers=$_vulkan_drivers \
		-Dosmesa=gallium \
		$_arch_conf \
		build

	ninja -C build
}

package() {
	DESTDIR="$pkgdir" ninja -C build install
}

egl() {
	replaces="mesa"
	pkgdesc="Mesa libEGL runtime libraries"
	install -d "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libEGL.so* \
		"$subpkgdir"/usr/lib/
}

gl() {
	replaces="mesa"
	pkgdesc="Mesa libGL runtime libraries"
	install -d "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libGL.so* \
		"$subpkgdir"/usr/lib/
}

glapi() {
	replaces="$pkgname-gles"
	pkgdesc="Mesa OpenGL API"
	install -d "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libglapi.so.* \
		"$subpkgdir"/usr/lib/
}

gles() {
	replaces="mesa"
	pkgdesc="Mesa libGLESv2 runtime libraries"
	install -d "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libGLES*.so* \
		"$subpkgdir"/usr/lib/
}

xatracker() {
	pkgdesc="Mesa XA state tracker for VMware"
	install -d "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libxatracker*.so.* \
		"$subpkgdir"/usr/lib/
}

osmesa() {
	pkgdesc="Mesa offscreen rendering libraries"
	install -d "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libOSMesa.so.* \
		"$subpkgdir"/usr/lib/
}

gbm() {
	pkgdesc="Mesa GBM library"
	replaces="mesa"
	install -d "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libgbm.so.* \
		"$subpkgdir"/usr/lib/
}

vulkan_overlay() {
	pkgdesc="Vulkan layer to display information about the current window"
	install -d "$subpkgdir"/usr/lib
	install -d "$subpkgdir"/usr/share/vulkan/explicit_layer.d
	mv "$pkgdir"/usr/lib/libVkLayer_MESA_overlay.so \
		"$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/share/vulkan/explicit_layer.d/VkLayer_MESA_overlay.json \
		"$subpkgdir"/usr/share/vulkan/explicit_layer.d/
}

dri() {
	pkgdesc="Mesa DRI drivers"
	replaces="mesa-dri-ati mesa-dri-freedreno mesa-dri-intel
	mesa-dri-nouveau mesa-dri-swrast mesa-dri-tegra mesa-dri-vc4
	mesa-dri-virtio mesa-dri-vmwgfx"
	provides="$replaces"
	install -d "$subpkgdir"/usr/lib/xorg/modules
	install -d "$subpkgdir"/usr/share/vulkan
	mv "$pkgdir"/usr/lib/dri "$subpkgdir"/usr/lib/
	mv "$pkgdir"/usr/lib/xorg/modules/dri "$subpkgdir"/usr/lib/xorg/modules/
	mv "$pkgdir"/usr/share/drirc.d "$subpkgdir"/usr/share/
	# XvMC drivers
	mv "$pkgdir"/usr/lib/libXvMC*.so* "$subpkgdir"/usr/lib/
	# support non-Vulkan arches
	mv "$pkgdir"/usr/lib/libvulkan*.so* "$subpkgdir"/usr/lib/ || true
	mv "$pkgdir"/usr/lib/vdpau "$subpkgdir"/usr/lib/
	mv "$pkgdir"/usr/share/vulkan/icd.d "$subpkgdir"/usr/share/vulkan/
}

sha512sums="2bbb3dc8f1d839f11fe12cc959393cd69607fa6714b2166b80299e0559d2d3b0ac38ed4e15ac3e5f472264eb24536d1901d350f7409f3a7e00d6f4ccbb2312fb  mesa-19.3.4.tar.xz
245d0d64d858dfadeeb544f31f7d0bb6ecb746a7fd5ec99755d679ae1a1eef4198d66473fb24d333eb6786bb8657012771e8285d67f165dc61a031df801947aa  amdgpu-pthread-header.patch
3417e5c6d7ec564178e1d72431042b0a6ba659321f13a3dda81eda5fa0f2c8bc7c6972cb8266aea84ab05976ffb161659e9988c50ecc418e8bc1e1ce8f93a65f  big-endian-flipping.patch
ba954ea9aa49e5cdfec08f310f41abf09e01a2a889a09b6c32a154b750d3ebb2bfb5a9b7d244c06d26442688aeeb7f212f5f3c98c6db69f878098a49d476ff70  intel-vulkan.patch
9f7a050f09571a2b17098d495b82e2e85b293fb7285e7d6d7c3c48cd4220a1bdcc61a7321ba78dd14860939ecabe7e89b32d6110f3728f793273e1e26b78a553  musl-fixes.patch
c7d91a660a033df91fac9c557039efc8669f0c26b2d35997d50753938b70d1af0bd110dcab3f8236eafab7d4be5dd7cd128a3e057e67e7e6a38a73fd6a7ef62e  musl-fix-includes.patch
56e829b0570cf5215c191330a5162356b77eeb555eb8127e30da57bdff9d369c1bb3de3bd7ee36233d6d610c0cec81773879da05cc0b391e06ff4d7507bef8a8  no-tls.patch
0aad2fdc56ea8825533746ee4c2c803734f871e04da13ddd461b2de36716ba52e345e745a6861ffae62efacf6b64f629187ddda3c01e3d880ce20c0ac551dccb  time64.patch"