summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorSovietReimu12282022-05-10 07:47:25 +0900
committerSovietReimu12282022-05-10 07:47:25 +0900
commitea4336bb19425d08264bccd0016487b5fa51fce6 (patch)
treea7444dd917b6b90e07ea74904a3fb9cc0802bb7e /PKGBUILD
downloadaur-ea4336bb19425d08264bccd0016487b5fa51fce6.tar.gz
First commit
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD126
1 files changed, 126 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..8e705f962217
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,126 @@
+# Maintainer: SovietReimu1228 <reimussr at protonmail dot ch>
+
+pkgname=mesa-rusticl-git
+pkgdesc="An open-source implementation of the OpenGL specification, with Rusticl"
+pkgver=22.1.0_devel.150548.320d00f985a.d41d8cd98f00b204e9800998ecf8427e
+pkgrel=1
+arch=('x86_64')
+makedepends=('python-mako' 'libxml2' 'libx11' 'xorgproto' 'libdrm' 'libxshmfence' 'libxxf86vm'
+ 'libxdamage' 'libvdpau' 'libva' 'wayland' 'wayland-protocols' 'zstd' 'elfutils' 'llvm'
+ 'libomxil-bellagio' 'libclc' 'clang' 'libglvnd' 'libunwind' 'lm_sensors' 'libxrandr'
+ 'valgrind' 'glslang' 'vulkan-icd-loader' 'directx-headers' 'cmake' 'meson'
+ 'rust' 'rust-bindgen')
+depends=('libdrm' 'libxcb' 'wayland' 'python'
+ 'libclc' 'clang'
+ 'libx11' 'libxshmfence' 'zstd'
+ 'libelf' 'llvm-libs'
+ 'expat'
+ 'libxxf86vm' 'libxdamage' 'libomxil-bellagio' 'libunwind' 'lm_sensors' 'libglvnd' 'vulkan-icd-loader'
+ 'spirv-llvm-translator')
+optdepends=('opencl-headers: headers necessary for OpenCL development'
+ 'opengl-man-pages: for the OpenGL API man pages'
+ 'compiler-rt: opencl')
+provides=('vulkan-mesa-layers' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-swrast' 'libva-mesa-driver' 'mesa-vdpau' 'mesa'
+ 'opencl-driver' 'vulkan-driver' 'mesa-libgl' 'opengl-driver')
+conflicts=('vulkan-mesa-layers' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-swrast' 'libva-mesa-driver' 'mesa-vdpau' 'mesa'
+ 'vulkan-mesa-layer' 'vulkan-mesa' 'mesa-libgl')
+url="https://www.mesa3d.org"
+license=('custom')
+# I couldn't build rusticl/wip branch, so I set branch to rusticl/main.
+source=('mesa::git+https://gitlab.freedesktop.org/karolherbst/mesa.git#branch=rusticl/main'
+ 'LICENSE')
+md5sums=('SKIP'
+ '5c65a0fe315dd347e09b1f2826a1df5a')
+sha512sums=('SKIP'
+ '25da77914dded10c1f432ebcbf29941124138824ceecaf1367b3deedafaecabc082d463abcfa3d15abff59f177491472b505bcb5ba0c4a51bb6b93b4721a23c2')
+
+# NINJAFLAGS is an env var used to pass commandline options to ninja
+# NOTE: It's your responbility to validate the value of $NINJAFLAGS. If unsure, don't set it.
+
+pkgver() {
+ cd mesa
+ local _ver
+ read -r _ver <VERSION
+
+ local _patchver
+ local _patchfile
+ for _patchfile in "${source[@]}"; do
+ _patchfile="${_patchfile%%::*}"
+ _patchfile="${_patchfile##*/}"
+ [[ $_patchfile = *.patch ]] || continue
+ _patchver="${_patchver}$(md5sum ${srcdir}/${_patchfile} | cut -c1-32)"
+ done
+ _patchver="$(echo -n $_patchver | md5sum | cut -c1-32)"
+
+ echo ${_ver/-/_}.$(git rev-list --count HEAD).$(git rev-parse --short HEAD).${_patchver}
+}
+
+prepare() {
+ # although removing _build folder in build() function feels more natural,
+ # that interferes with the spirit of makepkg --noextract
+ if [ -d _build ]; then
+ rm -rf _build
+ fi
+
+ local _patchfile
+ for _patchfile in "${source[@]}"; do
+ _patchfile="${_patchfile%%::*}"
+ _patchfile="${_patchfile##*/}"
+ [[ $_patchfile = *.patch ]] || continue
+ echo "Applying patch $_patchfile..."
+ patch --directory=mesa --forward --strip=1 --input="${srcdir}/${_patchfile}"
+ done
+}
+
+build () {
+ meson setup mesa _build \
+ -D b_ndebug=true \
+ -D prefix=/usr \
+ -D sysconfdir=/etc \
+ -D platforms=x11,wayland \
+ -D gallium-drivers=r300,r600,radeonsi,nouveau,svga,swrast,virgl,iris,zink,crocus,d3d12 \
+ -D vulkan-drivers=amd,intel,swrast \
+ -D dri3=enabled \
+ -D egl=enabled \
+ -D gallium-extra-hud=true \
+ -D gallium-nine=true \
+ -D gallium-omx=bellagio \
+ -D gallium-va=enabled \
+ -D gallium-vdpau=enabled \
+ -D gallium-xa=enabled \
+ -D gallium-xvmc=disabled \
+ -D gbm=enabled \
+ -D gles1=disabled \
+ -D gles2=enabled \
+ -D glvnd=true \
+ -D glx=dri \
+ -D libunwind=enabled \
+ -D llvm=enabled \
+ -D lmsensors=enabled \
+ -D osmesa=true \
+ -D shared-glapi=enabled \
+ -D valgrind=enabled \
+ -D vulkan-layers=device-select,intel-nullhw,overlay \
+ -D microsoft-clc=disabled \
+ -D gallium-rusticl=true \
+ -D opencl-spirv=true \
+ -D shader-cache=enabled
+
+ meson configure _build
+
+ ninja $NINJAFLAGS -C _build
+}
+
+package() {
+ DESTDIR="${pkgdir}" ninja $NINJAFLAGS -C _build install
+
+ # remove script file from /usr/bin
+ # https://gitlab.freedesktop.org/mesa/mesa/issues/2230
+ rm "${pkgdir}/usr/bin/mesa-overlay-control.py"
+ rmdir "${pkgdir}/usr/bin"
+
+ # indirect rendering
+ ln -s /usr/lib/libGLX_mesa.so.0 "${pkgdir}/usr/lib/libGLX_indirect.so.0"
+
+ install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${srcdir}/LICENSE"
+}