# Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=mesa pkgver=24.3.0 _llvmver=18 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 libglvnd-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 py3-pygments py3-markupsafe py3-cparser py3-pyyaml rust wayland-dev wayland-protocols glslang-dev zlib-dev zstd-dev bindgen-cli cbindgen clang-dev libarchive-dev" replaces="mesa-egl mesa-gl mesa-glapi mesa-gles" subpackages="$pkgname-dev $pkgname-dri $pkgname-vulkan-overlay $pkgname-gbm $pkgname-d3d $pkgname-xatracker $pkgname-osmesa" source="https://mesa.freedesktop.org/archive/mesa-$pkgver.tar.xz" _dri_driverdir=/usr/lib/xorg/modules/dri _gallium_drivers="r300,r600,radeonsi,nouveau,softpipe,llvmpipe,virgl,zink,svga" _vulkan_drivers="amd,nouveau,swrast,virtio" case "$CARCH" in x86_64) _gallium_drivers="${_gallium_drivers},i915,svga,crocus" _vulkan_drivers="${_vulkan_drivers},microsoft-experimental" _arch_conf="-Dintel-rt=enabled" ;; x86* | pmmx) _gallium_drivers="${_gallium_drivers},i915,svga,crocus" _arch_conf="-Dsse2=false" ;; aarch64 | arm*) _gallium_drivers="${_gallium_drivers},vc4,freedreno,tegra,v3d,lima,panfrost,etnaviv" _vulkan_drivers="${_vulkan_drivers},freedreno,panfrost,broadcom" case "$CARCH" in armhf) CFLAGS="$CFLAGS -mfpu=neon";; esac ;; ppc64) _arch_conf="-Dpower8=disabled" ;; esac build() { # This is to fix #796, and is derived from: # https://gitlab.freedesktop.org/mesa/mesa/-/commit/cc2b3a99ccf035a084d768e5c5ffa81478d685c1 cat > native.file <<EOF [binaries] llvm-config = '$(command -v llvm${_llvmver}-config)' rust = ['rustc', '--target=${CHOST}'] EOF meson \ --native-file=native.file \ -Dprefix=/usr \ -Ddri-drivers-path=$_dri_driverdir \ -Dgallium-drivers=$_gallium_drivers \ -Dgallium-nine=true \ -Dgallium-opencl=disabled \ -Dgallium-rusticl=false \ -Dgallium-va=enabled \ -Dgallium-vdpau=enabled \ -Dgallium-xa=enabled \ -Dglvnd=enabled \ -Dglx=dri \ -Dmicrosoft-clc=disabled \ -Dopencl-spirv=false \ -Dosmesa=true \ -Dplatforms=x11,wayland \ -Dvideo-codecs=all_free \ -Dvulkan-drivers=$_vulkan_drivers \ -Dvulkan-layers=device-select,overlay \ $_arch_conf \ build ninja -C build } package() { DESTDIR="$pkgdir" ninja -C build install } d3d() { replaces="mesa" pkgdesc="Mesa Direct3D adaptor libraries" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/d3d \ "$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/ } overlay() { pkgdesc="Vulkan overlays to display information" install -d "$subpkgdir"/usr/bin install -d "$subpkgdir"/usr/lib install -d "$subpkgdir"/usr/share mv "$pkgdir"/usr/lib/libVkLayer_MESA_*.so \ "$subpkgdir"/usr/lib mv "$pkgdir"/usr/share/vulkan \ "$subpkgdir"/usr/share/vulkan mv "$pkgdir"/usr/bin/mesa-overlay-control.py "$subpkgdir"/usr/bin } 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" depends="mesa=$pkgver-r$pkgrel" 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/ mv "$pkgdir"/usr/share/glvnd "$subpkgdir"/usr/share/ mv "$pkgdir"/usr/lib/libgallium*.so* "$subpkgdir"/usr/lib/ || true # 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="20168ae4c278776a60d5febf53b3367cf08bffffb40ef2054821e68d7a8c37a07871d097ab17555f41a4fe716f0de7df95ad7d452b1ed57db6527838eb839ba4 mesa-24.3.0.tar.xz"