2025-01-12 11:56:59 -05:00
|
|
|
# Template file for 'mesa-asahi'
|
2024-05-20 18:23:05 +12:00
|
|
|
pkgname=mesa-asahi
|
|
|
|
version=25.0.0+20241211
|
2025-02-06 19:11:25 -05:00
|
|
|
revision=2
|
2024-05-20 18:23:05 +12:00
|
|
|
_llvmver=19
|
|
|
|
_mesaver=${version%+*}
|
2025-01-12 11:56:59 -05:00
|
|
|
archs="aarch64*"
|
2024-05-20 18:23:05 +12:00
|
|
|
build_style=meson
|
|
|
|
build_helper="qemu"
|
|
|
|
#Disable LTO flag should be present, see https://gitlab.freedesktop.org/mesa/mesa/-/issues/6911
|
|
|
|
configure_args="-Dglvnd=enabled -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled
|
|
|
|
-Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri
|
|
|
|
-Dlmsensors=enabled -Dplatforms=x11$(vopt_if wayland ,wayland)
|
|
|
|
-Dllvm=enabled -Db_lto=false -Dcpp_std=gnu++17
|
|
|
|
-Dgallium-vdpau=enabled -Dgallium-va=enabled
|
2025-02-06 19:11:25 -05:00
|
|
|
-Dvulkan-drivers=swrast,virtio,asahi -Dvulkan-layers=device-select,overlay
|
2024-05-20 18:23:05 +12:00
|
|
|
-Dgallium-drivers=swrast,asahi,virgl,zink
|
|
|
|
-Dgallium-opencl=icd -Dgallium-rusticl=true -Drust_std=2021"
|
|
|
|
hostmakedepends="gettext flex pkg-config python3-Mako glslang llvm${_llvmver}
|
|
|
|
$(vopt_if wayland 'wayland-protocols wayland-devel') python3-pycparser python3-yaml
|
|
|
|
clang${_llvmver} rust rust-bindgen"
|
|
|
|
makedepends="elfutils-devel expat-devel libXdamage-devel
|
|
|
|
libXxf86vm-devel libdrm-devel libffi-devel libva-devel
|
|
|
|
libvdpau-devel libxshmfence-devel ncurses-devel zlib-devel
|
|
|
|
$(vopt_if wayland 'wayland-devel wayland-protocols') llvm${_llvmver}-devel libsensors-devel
|
|
|
|
libXrandr-devel libglvnd-devel libzstd-devel libxml2-devel lua53-devel
|
|
|
|
libarchive-devel vulkan-loader clang${_llvmver} libclc${_llvmver} rust
|
|
|
|
SPIRV-LLVM-Translator${_llvmver}-devel SPIRV-Tools-devel"
|
|
|
|
depends="libglvnd"
|
|
|
|
short_desc="Open source implementation of OpenGL and Vulkan - Asahi"
|
|
|
|
maintainer="dkwo <npiazza@disroot.org>"
|
|
|
|
license="MIT, LGPL-2.1-or-later"
|
|
|
|
homepage="https://www.mesa3d.org/"
|
|
|
|
changelog="https://docs.mesa3d.org/relnotes.html"
|
|
|
|
distfiles="https://gitlab.freedesktop.org/asahi/mesa/-/archive/asahi-${version#*+}/mesa-asahi-${version#*+}.tar.gz"
|
|
|
|
checksum=b92a8a2bf034fd29aa1f619eda241e874be1a4cbd3db0bafaba534eef6674145
|
|
|
|
replaces="mesa>=0 mesa-libgallium>=0 libglapi>=0"
|
|
|
|
provides="mesa-${_mesaver}_${revision} mesa-libgallium-${_mesaver}_${revision} libglapi-${_mesaver}_${revision}"
|
|
|
|
shlib_provides="libglapi.so libgallium-${_mesaver}-devel.so"
|
|
|
|
|
2025-01-12 19:06:09 +01:00
|
|
|
# alphabetical order is not good
|
|
|
|
subpackages="libgbm-asahi libgbm-asahi-devel libOSMesa-asahi MesaLib-asahi-devel
|
|
|
|
mesa-asahi-opencl mesa-asahi-vaapi mesa-asahi-vdpau mesa-asahi-vulkan-overlay-layer
|
|
|
|
mesa-asahi-dri"
|
|
|
|
|
2024-05-20 18:23:05 +12:00
|
|
|
build_options="wayland"
|
|
|
|
build_options_default="wayland"
|
|
|
|
|
|
|
|
# Replace old mesa pkgs, superseded by libglvnd.
|
|
|
|
replaces="libGL>=10_1<19.2.5_2 libEGL>=10_1<19.2.5_2 libGLES>=10_1<19.2.5_2"
|
|
|
|
|
|
|
|
post_configure() {
|
|
|
|
if [ "$CROSS_BUILD" ]; then
|
|
|
|
find -iname "*.ninja" -exec sed -i "{}" \
|
|
|
|
-e "/rustc/s; --sysroot ${XBPS_CROSS_BASE}/usr;;g" \
|
|
|
|
-e "s|-isystem/usr/include||g" \
|
|
|
|
\;
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
post_install() {
|
|
|
|
vlicense docs/license.rst
|
|
|
|
|
|
|
|
# ensure that each eligible architecture ships its multilib icd files
|
|
|
|
# in some cases, multiple counterpart architectures may exist (aarch64)
|
|
|
|
# this allows us to not have to ship these files in the current *-32bit packages
|
|
|
|
local arch=${XBPS_TARGET_MACHINE%-*}
|
|
|
|
local oarchs
|
|
|
|
local olibdir="/usr/lib32/"
|
|
|
|
if [ "$XBPS_TARGET_WORDSIZE" = "32" ]; then
|
|
|
|
olibdir="/usr/lib64/"
|
|
|
|
fi
|
|
|
|
oarchs="armv6l armv7l"
|
|
|
|
for oarch in $oarchs; do
|
|
|
|
for icd in ${DESTDIR}/usr/share/vulkan/icd.d/*_icd.${arch}.json; do
|
|
|
|
sed "s#/usr/lib${XBPS_TARGET_WORDSIZE}/#${olibdir}#g" \
|
|
|
|
${icd} > ${icd/.${arch}/.${oarch}}
|
|
|
|
done
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
libgbm-asahi_package() {
|
|
|
|
short_desc="Mesa Generic buffer management API - runtime"
|
|
|
|
replaces="libgbm>=0"
|
|
|
|
provides="libgbm-${_mesaver}_${revision}"
|
|
|
|
pkg_install() {
|
|
|
|
vmove "usr/lib/libgbm.so.*"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
libgbm-asahi-devel_package() {
|
|
|
|
short_desc="Mesa Generic buffer management API - development files"
|
|
|
|
depends="libgbm-asahi>=${version}_${revision}"
|
|
|
|
replaces="libgbm-devel>=0"
|
|
|
|
provides="libgbm-devel-${_mesaver}_${revision}"
|
|
|
|
pkg_install() {
|
|
|
|
vmove usr/include/gbm.h
|
|
|
|
vmove usr/lib/libgbm.so
|
|
|
|
vmove usr/lib/pkgconfig/gbm.pc
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
libOSMesa-asahi_package() {
|
|
|
|
short_desc="Mesa Off-Screen interface library"
|
|
|
|
replaces="libOSMesa>=0"
|
|
|
|
provides="libOSMesa-${_mesaver}_${revision}"
|
|
|
|
pkg_install() {
|
|
|
|
vmove "usr/lib/libOSMesa.so.*"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
MesaLib-asahi-devel_package() {
|
|
|
|
depends="mesa-asahi>=${version}_${revision} libOSMesa-asahi>=${version}_${revision}
|
|
|
|
libgbm-asahi-devel>=${version}_${revision}"
|
|
|
|
depends+=" libdrm-devel libglvnd-devel"
|
|
|
|
replaces="MesaLib-devel>=0"
|
|
|
|
provides="MesaLib-devel-${_mesaver}_${revision}"
|
|
|
|
short_desc+=" - development files"
|
|
|
|
pkg_install() {
|
|
|
|
vmove usr/include
|
|
|
|
vmove usr/lib/pkgconfig
|
|
|
|
vmove usr/lib/libEGL_mesa.so
|
|
|
|
vmove usr/lib/libGLX_mesa.so
|
|
|
|
vmove usr/lib/libOSMesa.so
|
|
|
|
vmove usr/lib/libglapi.so
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
mesa-asahi-dri_package() {
|
|
|
|
short_desc="Mesa DRI drivers"
|
|
|
|
depends="mesa-asahi-${version}_${revision}"
|
|
|
|
replaces="mesa-dri>=0"
|
|
|
|
provides="mesa-dri-${_mesaver}_${revision}"
|
|
|
|
shlib_provides="libgallium_dri.so" # workaround for mesa-dri-32bit
|
|
|
|
pkg_install() {
|
|
|
|
vmove usr/lib/dri
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
mesa-asahi-opencl_package() {
|
|
|
|
short_desc="Mesa implementation of OpenCL (r600+ only)"
|
|
|
|
depends="libclc${_llvmver}"
|
|
|
|
replaces="mesa-opencl>=0"
|
|
|
|
provides="mesa-opencl-${_mesaver}_${revision}"
|
|
|
|
pkg_install() {
|
|
|
|
vmove etc/OpenCL
|
|
|
|
vmove usr/lib/gallium-pipe
|
|
|
|
vmove "usr/lib/libMesaOpenCL.so.*"
|
|
|
|
vmove "usr/lib/libRusticlOpenCL.so.*"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
mesa-asahi-vaapi_package() {
|
|
|
|
short_desc="Mesa VA-API drivers"
|
|
|
|
replaces="mesa-vaapi>=0"
|
|
|
|
provides="mesa-vaapi-${_mesaver}_${revision}"
|
|
|
|
shlib_provides="libgallium_drv_video.so" # workaround for mesa-vaapi-32bit
|
|
|
|
pkg_install() {
|
|
|
|
vmove "usr/lib/dri/*_drv_video.so"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
mesa-asahi-vdpau_package() {
|
|
|
|
short_desc="Mesa VDPAU drivers"
|
|
|
|
replaces="mesa-vdpau>=0"
|
|
|
|
provides="mesa-vdpau-${_mesaver}_${revision}"
|
|
|
|
pkg_install() {
|
|
|
|
vmove "usr/lib/vdpau/libvdpau_*"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
mesa-asahi-vulkan-overlay-layer_package() {
|
|
|
|
short_desc="Vulkan layer to display information about the running application"
|
|
|
|
replaces="mesa-vulkan-overlay-layer>=0"
|
|
|
|
provides="mesa-vulkan-overlay-layer-${_mesaver}_${revision}"
|
|
|
|
pkg_install() {
|
|
|
|
vmove "usr/share/vulkan/explicit_layer.d/VkLayer_*.json"
|
|
|
|
vmove "usr/share/vulkan/implicit_layer.d/VkLayer_*.json"
|
|
|
|
vmove "usr/bin/mesa-overlay-control.py"
|
|
|
|
vmove "usr/lib/libVkLayer_*.so"
|
|
|
|
}
|
|
|
|
}
|