#_ _ _ _ _ _____ _ _ #| | _______ ____ _| | | || |___ | || | #| |/ / _ \ \ / / _` | | | || |_ / /| || |_ #| < __/\ V / (_| | | |__ _/ / |__ _| #|_|\_\___| \_/ \__,_|_|_| |_|/_/ |_| #Maintainer: kevall474 #Credits: Lone_Wolf ---> For the base PKGBULD #Credits: Laurent Carlier ---> For the base PKGBUILD ####################################### #Enable llvm by default #Set 'y' to enable #Default is set to empty, so no llvm by default patch if [ -z ${_llvm+x} ]; then _llvm= fi ####################################### #Set compiler #Set '1' to use gcc #Set '2' to use clang #If not set it will build with gcc if [ -z ${_compiler+x} ]; then _compiler= fi ####################################### pkgname=mesa-rc pkgdesc='An open-source implementation of the OpenGL specification. (64-bit) (rc release)' pkgver=21.0.0_rc5 pkgrel=1 versiontag=21.0.0-rc5 arch=('x86_64') url="https://mesa3d.org/" license=('MIT') makedepends=('meson' 'ninja' 'bison' 'flex' 'python' 'python-mako' 'python-appdirs' 'python-evdev' 'lua' 'polly' 'valgrind' 'xorgproto' 'wayland-protocols' 'glslang' 'libclc' 'elfutils' 'libarchive' 'libconfig' 'compiler-rt' 'libxcb' 'wayland' 'libxml2' 'libx11' 'libvdpau' 'libelf' 'libglvnd' 'ncurses' 'libva' 'libxrandr' 'expat' 'libdrm' 'libxvmc' 'libepoxy' 'libxv' 'libxshmfence' 'libxxf86vm' 'libxdamage' 'zstd' 'lm_sensors' 'libunwind' 'vulkan-icd-loader' 'ocl-icd' 'llvm' 'clang' 'llvm-libs' 'glibc' 'gcc' 'gcc-libs' 'libomxil-bellagio') 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' 'llvm' 'clang' 'gcc-libs' 'gcc' 'glslang') #depends+=('libsensors.so' 'libexpat.so' 'libvulkan.so') conflicts=('mesa' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-mesa' 'vulkan-swrast' 'vulkan-mesa-layers' 'libva-mesa-driver' 'mesa-vdpau' 'mesa-stable' 'mesa-git') provides=('mesa' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-swrast' 'vulkan-driver' 'vulkan-mesa-layers' 'libva-mesa-driver' 'mesa-vdpau' 'opengl-driver' 'opencl-driver' 'mesa-libgl') source=("https://archive.mesa3d.org/mesa-$versiontag.tar.xz" "LICENSE") md5sums=("SKIP" "SKIP") if [[ $_llvm = "y" ]]; then source+=("0001-enable-llvm-by-default.patch") md5sums+=("SKIP") #0001-enable-llvm-by-default.patch fi # clover patch for llvm 12.0.0 and 13.0.0. Not commited in master branch for now source+=("0001-4114.patch" "0001-4200.patch") md5sums+=("SKIP" "SKIP") prepare(){ cd mesa-$versiontag # Apply any patch local src for src in "${source[@]}"; do src="${src%%::*}" src="${src##*/}" [[ $src = *.patch ]] || continue msg2 "Applying patch $src..." patch -Np1 < "../$src" done } build(){ if [[ $_compiler = "1" ]]; then export CC='gcc -m64' export CXX='g++ -m64' elif [[ $_compiler = "2" ]]; then export CC='clang -m64' export CXX='clang++ -m64' else export CC='gcc -m64' export CXX='g++ -m64' fi cd mesa-$versiontag # remove build dir if there is one if dir build_64; then rm -rf -v build_64 fi # create build dir mkdir -p -v build_64 # build with meson meson setup build_64/ \ -D b_ndebug=true \ -D buildtype=plain \ --wrap-mode=nofallback \ -Dprefix=/usr \ -D sysconfdir=/etc \ -Dplatforms=x11,wayland \ -Ddri3=enabled \ -Ddri-drivers=i915,i965,r100,r200,nouveau \ -Dgallium-drivers=r300,r600,radeonsi,nouveau,virgl,svga,swrast,iris,zink \ -Dgallium-extra-hud=true \ -Dgallium-vdpau=enabled \ -Dgallium-xvmc=enabled \ -Dgallium-omx=bellagio \ -Dgallium-va=enabled \ -Dgallium-xa=enabled \ -Dgallium-nine=true \ -Dgallium-opencl=icd \ -Dopencl-spirv=false \ -Dopencl-native=true \ -Dvulkan-drivers=amd,intel,swrast \ -Dshader-cache=enabled \ -Dvulkan-overlay-layer=true \ -Dvulkan-device-select-layer=true \ -Dshared-glapi=enabled \ -Dgles1=enabled \ -Dgles2=enabled \ -Dopengl=true \ -Dgbm=enabled \ -Dglx=dri \ -Degl=enabled \ -Dglvnd=true \ -Dmicrosoft-clc=disabled \ -Dspirv-to-dxil=false \ -Dllvm=enabled \ -Dshared-llvm=enabled \ -Dvalgrind=enabled \ -Dlibunwind=enabled \ -Dlmsensors=enabled \ -Dselinux=false \ -Dosmesa=true \ -Dswr-arches=avx,avx2,knl,skx \ -Dshared-swr=true \ -Dxlib-lease=enabled \ -Dglx-direct=true \ -Dzstd=enabled \ -Dzlib=enabled \ -Dsse2=false meson configure build_64/ meson compile -C build_64/ ninja -C build_64/ } package_mesa-rc(){ # compiling mesa and installing to "$pkgdir" DESTDIR="${pkgdir}" ninja -C mesa-$versiontag/build_64/ install # remove script file from /usr/bin rm "${pkgdir}/usr/bin/mesa-overlay-control.py" rm -rf -v "${pkgdir}/usr/bin" # indirect rendering ln -s /usr/lib/libGLX_mesa.so.0 "${pkgdir}/usr/lib/libGLX_indirect.so.0" # installing license install -Dt "$pkgdir"/usr/share/licenses/"$pkgname" -m644 LICENSE }