summaryrefslogblamecommitdiff
path: root/user/mesa/APKBUILD
blob: d45468a6c309b04c190730359990eb354a3696f0 (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                 
            


             
                                 
                            
          
                                  
                                                             
          

                                                                              
                                                                                

                                                                               
                                                                      





                                                                           

                                        

                                                                          

                




                                                                   
            

                                                                    
                                 
          
               
                                                                                                  
                                                                        



                                            
      
                                      
          

    
         




                                                                                                    
                                     

   
               
                                           

                                                    
                                                     









                                           
                               



                                                       



                             


           
                                                





                                               
                                          




                                     
                                 




                                            
       
                       
                                                 
                                       
                                  



                                     
                                                  












                                                    
                                  





                                          


                                                        
                                       

                                                   
                                    


                                                                         

 




                                                                    
                                       
                            
                                                    
                                                
                                                      

                                                                                

                                                                          

                                                                         

                                                                          

 
                                                                                                                                                                 
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=mesa
pkgver=24.2.7
_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-pyyaml rust wayland-dev wayland-protocols glslang-dev
	zlib-dev zstd-dev bindgen-cli cbindgen"
subpackages="$pkgname-dev $pkgname-dri $pkgname-vulkan-overlay $pkgname-egl
	$pkgname-glapi $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"
_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,iris,crocus"
	_vulkan_drivers="${_vulkan_drivers},intel,intel_hasvk"
	_arch_conf="-Dsse2=false"
	;;
aarch64 | arm*)
	_gallium_drivers="${_gallium_drivers},vc4,freedreno,tegra,kmsro,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
}

egl() {
	replaces="mesa"
	pkgdesc="Mesa libEGL runtime libraries"
	install -d "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libEGL*.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/
}

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="8776b45abe5e845c587c0fa9feb22d89f07457265ff63175fb42681ce56dff97b0e163d9e9ac80555ee04decb78754e7331e1015d95c5f84ca3c2549663291dd  mesa-24.2.7.tar.xz"