# Maintainer: Reza Jahanbakhshi # Contributor: Armin K. # Contributor: Kristian Klausen # Contributor: Egon Ashrafinia # Contributor: Tavian Barnes # Contributor: Jan de Groot # Contributor: Andreas Radke # Contributor: Thomas Dziedzic < gostrc at gmail > # Contributor: Antti "Tera" Oja # Contributor: Diego Jose pkgname=mesa-git pkgdesc="an open-source implementation of the OpenGL specification, git version" pkgver=24.1.0_devel.188033.40f39482e15.d41d8cd pkgrel=1 arch=('x86_64') makedepends=( 'git' 'xorgproto' 'libxml2' 'libvdpau' 'libva' 'elfutils' 'libxrandr' 'meson' 'ninja' 'glslang' 'directx-headers' 'python-mako' 'python-ply' 'cbindgen' 'wayland-protocols' 'cmake' ) depends=( 'libdrm' 'libxxf86vm' 'libxdamage' 'libxshmfence' 'libelf' 'libomxil-bellagio' 'libunwind' 'libglvnd' 'wayland' 'lm_sensors' 'vulkan-icd-loader' 'zstd' 'expat' 'gcc-libs' 'libxfixes' 'libx11' 'systemd-libs' 'libxext' 'libxcb' 'glibc' 'zlib' 'python' 'xcb-util-keysyms' ) optdepends=('opengl-man-pages: for the OpenGL API man pages') provides=( 'vulkan-mesa-layers' 'opencl-clover-mesa' 'opencl-driver' 'opengl-driver' 'vulkan-driver' 'vulkan-intel' 'vulkan-nouveau' 'vulkan-radeon' 'vulkan-swrast' 'vulkan-virtio' 'libva-mesa-driver' 'mesa-vdpau' 'mesa-libgl' 'mesa' ) conflicts=( 'vulkan-mesa-layers' 'opencl-clover-mesa' 'vulkan-intel' 'vulkan-nouveau' 'vulkan-radeon' 'vulkan-swrast' 'vulkan-virtio' 'libva-mesa-driver' 'mesa-vdpau' 'mesa-libgl' 'mesa' ) url="https://www.mesa3d.org" license=('custom') source=( 'mesa::git+https://gitlab.freedesktop.org/mesa/mesa.git#branch=main' 'LICENSE' ) sha256sums=('SKIP' '7fdc119cf53c8ca65396ea73f6d10af641ba41ea1dd2bd44a824726e01c8b3f2' '39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b' '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b' '5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae' '23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a') b2sums=('SKIP' 'cc60238726b35133b5b729fb4ed1e76e04136588533615d84b4a54656d5b41727d5e7ff06ef4de3eb102eed6669d6c5c5cb8ac9fbdf6fc25aa477877c5c3ba87' 'fff0dec06b21e391783cc136790238acb783780eaedcf14875a350e7ceb46fdc100c8b9e3f09fb7f4c2196c25d4c6b61e574c0dad762d94533b628faab68cf5c' '4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac' '77c4b166f1200e1ee2ab94a5014acd334c1fe4b7d72851d73768d491c56c6779a0882a304c1f30c88732a6168351f0f786b10516ae537cff993892a749175848' '2cff6626624d03f70f1662af45a8644c28a9f92e2dfe38999bef3ba4a4c1ce825ae598277e9cb7abd5585eebfb17b239effc8d0bbf1c6ac196499f0d288e5e01') options=(!lto !debug) # lto and debug are disabled manually through meson -D flags, but it feels cleaner to also list them here. # Rust crates for NVK, used as Meson subprojects declare -A _crates=( proc-macro2 1.0.70 quote 1.0.33 syn 2.0.39 unicode-ident 1.0.12 ) for _crate in "${!_crates[@]}"; do source+=($_crate-${_crates[$_crate]}.tar.gz::https://crates.io/api/v1/crates/$_crate/${_crates[$_crate]}/download) done # 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. # MESA_WHICH_LLVM is an environment variable that determines which llvm package tree is used to built mesa-git against. # Adding a line to ~/.bashrc that sets this value is the simplest way to ensure a specific choice. # # NOTE: Aur helpers don't handle this method well, check the sticky comments on mesa-git aur page . # # 1: llvm-minimal-git (aur) preferred value # 2: AUR llvm-git # 3: llvm-git from LordHeavy unofficial repo # 4 llvm (stable from extra) Default value # rusticl=false MESA_WHICH_LLVM=${MESA_WHICH_LLVM:-4} case $MESA_WHICH_LLVM in 1) # aur llvm-minimal-git makedepends+=( 'llvm-minimal-git' 'libclc-minimal-git' 'spirv-llvm-translator-minimal-git' 'clang-minimal-git' 'clang-opencl-headers-minimal-git' ) depends+=('llvm-libs-minimal-git') ;; 2) # aur llvm-git # depending on aur-llvm-* to avoid mixup with LH llvm-git makedepends+=( 'aur-llvm-git' 'libclc-git' 'spirv-llvm-translator-git' 'clang-git' 'clang-opencl-headers-git' ) depends+=('aur-llvm-libs-git') optdepends+=('aur-llvm-git: opencl') ;; 3) # mesa-git/llvm-git (lordheavy unofficial repo) makedepends+=( 'llvm-git' 'clang-git' 'libclc-git' 'spirv-tools' 'spirv-llvm-translator-git' ) depends+=('llvm-libs-git') optdepends+=('clang-git: opencl' 'compiler-rt: opencl') ;; 4) # extra/llvm makedepends+=( 'llvm=17.0.6' 'clang=17.0.6' 'libclc' 'spirv-llvm-translator' 'spirv-tools' 'rust' 'rust-bindgen' ) depends+=(llvm-libs=17.0.6) optdepends+=('clang: opencl' 'compiler-rt: opencl') conflicts+=('opencl-rusticl-mesa') provides+=('opencl-rusticl-mesa') rusticl=true ;; *) esac pkgver() { cd mesa local _ver _ver=$(