pmaports/temp/mesa-git/APKBUILD
Danct12 77a4f7ce1c
temp/mesa-git: upgrade to 0_git20200116 (!886)
[ci:skip-build]: already built successfully in CI
2020-01-19 11:45:58 +01:00

382 lines
8.9 KiB
Text

# Forked from Alpine Linux to provide latest git builds, useful for bleeding
# edge driver support
#
# Any new drivers should be upstreamed to Alpine Linux once they appear in a
# new Mesa stable release
#
# Any device that wants to use this should explicitely depend on the entirety
# of this aport, so mesa-git including _all_ of the subpackages, to not cause
# conflicts
pkgname=mesa-git
pkgver=0_git20200116
pkgrel=0
_commit="68abc0731715b2ec3048d0944250b96a5302b4bc"
pkgdesc="(Git) Mesa DRI OpenGL library"
url="https://www.mesa3d.org"
arch="all"
license="MIT SGI-B-2.0 BSL-1.0"
subpackages="
$pkgname-dev
$pkgname-dri-ati:_dri
$pkgname-dri-nouveau:_dri
$pkgname-dri-freedreno:_dri
$pkgname-dri-swrast:_dri
$pkgname-dri-virtio:_dri
$pkgname-glapi $pkgname-egl $pkgname-gl $pkgname-gles
$pkgname-xatracker $pkgname-osmesa $pkgname-gbm
$pkgname-vulkan-ati:_vulkan
"
_llvmver=9
depends_dev="
libdrm-dev
libxext-dev
libxdamage-dev
libxcb-dev
libxshmfence-dev
"
# FIXME: Remove glslang when pmbootstrap can handle the conditional makedepends below
makedepends="
$depends_dev
bison
eudev-dev
expat-dev
flex
gettext
glslang
elfutils-dev
libtool
libxfixes-dev
libva-dev
libvdpau-dev
libx11-dev
libxrandr-dev
libxt-dev
libxvmc-dev
libxxf86vm-dev
llvm$_llvmver-dev
makedepend
meson
py3-mako
py3-libxml2
python3
talloc-dev
wayland-dev
wayland-protocols
xorgproto
zlib-dev
"
source="
$pkgname-$_commit.tar.gz::https://gitlab.freedesktop.org/mesa/mesa/-/archive/$_commit.tar.gz
adjust-cache-deflate-buffer.patch
musl-fix-includes.patch
add-use-elf-tls.patch
time-fix.patch
"
provides="mesa"
replaces="mesa-dricore mesa"
builddir="$srcdir/mesa-$_commit"
pcprefix="mesa-git"
if [ "$CARCH" = x86 ]; then
# Bug upstream that needs to be fixed
options="$options textrels"
fi
_dri_driverdir=/usr/lib/xorg/modules/dri
_dri_drivers="r100,r200,nouveau"
_gallium_drivers="r300,r600,radeonsi,nouveau,freedreno,swrast,virgl"
_vulkan_drivers="amd"
_arch_opts=""
_vulkan_overlay_layer=false
case "$CARCH" in
x86*)
_dri_drivers="${_dri_drivers},i915,i965"
_gallium_drivers="${_gallium_drivers},svga,iris"
_vulkan_drivers="${_vulkan_drivers},intel"
_vulkan_overlay_layer=true
makedepends="$makedepends glslang"
subpackages="$subpackages \
$pkgname-dri-intel:_dri \
$pkgname-dri-vmwgfx:_dri \
$pkgname-vulkan-intel:_vulkan \
$pkgname-vulkan-layer:_vulkan_layer"
_arch_opts="-Ddri3=true"
case "$CARCH" in
x86)
_arch_opts="$_arch_opts -Dglx-read-only-text=true -Dasm=false";;
esac
;;
armhf|armv7|aarch64)
_gallium_drivers="${_gallium_drivers},vc4,v3d,kmsro,lima,panfrost,etnaviv,tegra"
subpackages="$subpackages
$pkgname-dri-vc4:_dri
$pkgname-dri-v3d:_dri
$pkgname-dri-kmsro:_dri
$pkgname-dri-lima:_dri
$pkgname-dri-panfrost:_dri
$pkgname-dri-etnaviv:_dri
$pkgname-dri-tegra:_dri
"
;;
esac
build() {
export CFLAGS="$CFLAGS -D_XOPEN_SOURCE=700"
export PATH=/usr/lib/llvm${_llvmver}/bin:$PATH
meson \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var \
--buildtype=release \
-Ddri-drivers-path=$_dri_driverdir \
-Dgallium-drivers=$_gallium_drivers \
-Ddri-drivers=$_dri_drivers \
-Dvulkan-drivers=$_vulkan_drivers \
-Dvulkan-overlay-layer=$_vulkan_overlay_layer \
-Dplatforms=x11,drm,wayland \
-Dllvm=true \
-Dshared-llvm=true \
-Dshared-glapi=true \
-Dgbm=true \
-Dglx=dri \
-Dopengl=true \
-Dosmesa=gallium \
-Dgles1=false \
-Dgles2=true \
-Degl=true \
-Dgallium-xa=true \
-Dgallium-vdpau=true \
-Dgallium-va=true \
-Dgallium-xvmc=false \
-Dglx-use-tls=false \
-Dgallium-nine=false \
-Db_ndebug=true \
$_arch_opts \
. output
# parallel build workaround
ninja -C output src/compiler/nir/nir_intrinsics.h src/git_sha1.h
ninja -C output
}
package() {
DESTDIR="$pkgdir" ninja -C output install
# Make abuild's version check happy (#386)
sed -i s/-devel//g "$pkgdir"/usr/lib/pkgconfig/*.pc
}
egl() {
pkgdesc="Mesa libEGL runtime libraries"
depends="mesa-git"
replaces="mesa-egl"
provides="mesa-egl"
install -d "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libEGL.so* "$subpkgdir"/usr/lib/
}
gl() {
pkgdesc="Mesa libGL runtime libraries"
depends="mesa-git"
replaces="mesa-gl"
provides="mesa-gl"
install -d "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libGL.so* "$subpkgdir"/usr/lib/
}
glapi() {
pkgdesc="Mesa shared glapi"
replaces="mesa-gles mesa-glapi"
provides="mesa-glapi"
install -d "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libglapi.so.* "$subpkgdir"/usr/lib/
}
gles() {
pkgdesc="Mesa libGLESv2 runtime libraries"
depends="mesa-git"
replaces="mesa-gles"
provides="mesa-gles"
install -d "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libGLES*.so* "$subpkgdir"/usr/lib/
}
xatracker() {
pkgdesc="Mesa XA state tracker for vmware"
depends="mesa-git"
replaces="mesa-xatracker"
provides="mesa-xatracker"
install -d "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libxatracker*.so.* "$subpkgdir"/usr/lib/
}
osmesa() {
pkgdesc="Mesa offscreen rendering libraries"
depends="mesa-git"
replaces="mesa-osmesa"
provides="mesa-osmesa"
install -d "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libOSMesa.so.* "$subpkgdir"/usr/lib/
}
gbm() {
pkgdesc="Mesa gbm library"
depends="mesa-git"
replaces="mesa-gbm"
provides="mesa-gbm"
install -d "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libgbm.so.* "$subpkgdir"/usr/lib/
}
dev() {
replaces="mesa-dev"
provides="mesa-dev"
default_dev
}
_mv_dri() {
install -d "$subpkgdir"/$_dri_driverdir
while [ $# -gt 0 ]; do
mv "$pkgdir"/$_dri_driverdir/$1.so \
"$subpkgdir"/$_dri_driverdir/
shift
done
}
_mv_vdpau() {
local i
install -d "$subpkgdir"/usr/lib/vdpau
for i in "$@"; do
mv "$pkgdir"/usr/lib/vdpau/libvdpau_$i.* \
"$subpkgdir"/usr/lib/vdpau/
done
}
_mv_gpipe() {
return 0
# http://cgit.freedesktop.org/mesa/mesa/commit/?id=44ec468e8033553c26a112cebba41c343db00eb1
# https://code.google.com/p/chromium/issues/detail?id=412089
# local i
# install -d "$subpkgdir"/usr/lib/gallium-pipe
# for i in "$@"; do
# mv "$pkgdir"/usr/lib/gallium-pipe/pipe_$i.* \
# "$subpkgdir"/usr/lib/gallium-pipe/
# done
}
_mv_vulkan() {
local i
install -d "$subpkgdir"/usr/lib
install -d "$subpkgdir"/usr/share/vulkan/icd.d
for i in "$@"; do
mv "$pkgdir"/usr/lib/libvulkan_$i.so "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/share/vulkan/icd.d/${i}* "$subpkgdir"/usr/share/vulkan/icd.d/
done
}
_mv_va() {
local i
install -d "$subpkgdir"/usr/lib/dri
for i in "$@"; do
mv "$pkgdir"/usr/lib/dri/${i}_drv_video.so \
"$subpkgdir"/usr/lib/dri/
done
}
_dri() {
local n=${subpkgname##*-dri-}
pkgdesc="(Git) Mesa DRI driver for $n"
depends="mesa-git"
provides="mesa-dri-$n"
replaces="mesa-dri-$n"
case $n in
ati)
_mv_dri radeon_dri r200_dri r300_dri r600_dri radeonsi_dri \
&& _mv_vdpau r300 r600 radeonsi \
&& _mv_gpipe r300 r600 \
&& _mv_va r600 radeonsi
;;
intel)
_mv_dri i915_dri i965_dri iris_dri
;;
nouveau)
_mv_dri nouveau_dri nouveau_vieux_dri \
&& _mv_vdpau nouveau \
&& _mv_gpipe nouveau \
&& _mv_va nouveau
;;
freedreno)
_mv_dri msm_dri kgsl_dri
;;
swrast)
_mv_dri swrast_dri kms_swrast_dri && _mv_gpipe swrast
;;
vc4)
_mv_dri vc4_dri
;;
v3d)
_mv_dri v3d_dri
;;
vmwgfx)
_mv_dri vmwgfx_dri && _mv_gpipe vmwgfx
;;
virtio)
_mv_dri virtio_gpu_dri
;;
kmsro)
_mv_dri exynos_dri hx8357d_dri ili9225_dri ili9341_dri ingenic-drm_dri mcde_dri meson_dri mi0283qt_dri mxsfb-drm_dri pl111_dri repaper_dri rockchip_dri st7586_dri st7735r_dri stm_dri sun4i-drm_dri
;;
lima)
_mv_dri lima_dri
;;
panfrost)
_mv_dri panfrost_dri
;;
etnaviv)
_mv_dri armada-drm_dri imx-drm_dri etnaviv_dri
;;
tegra)
_mv_dri tegra_dri
;;
esac
}
_vulkan() {
local n=${subpkgname##*-vulkan-}
pkgdesc="(Git) Mesa Vulkan API driver for $n"
depends="mesa-git"
replaces="mesa-vulkan-$n"
provides="mesa-vulkan-$n"
case $n in
ati)
_mv_vulkan radeon ;;
intel)
_mv_vulkan intel ;;
esac
}
_vulkan_layer() {
pkgdesc="Vulkan overlay layer to display information about the application"
mkdir -p "$subpkgdir"/usr/share/vulkan "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/share/vulkan/explicit_layer.d "$subpkgdir"/usr/share/vulkan
mv "$pkgdir"/usr/lib/libVkLayer_MESA_overlay.so "$subpkgdir"/usr/lib
}
sha512sums="c8a47a898a5d6f94a5b3d7f80ee1f0872265f578ab23d2e70d04a1397a9555c734a488cfa1cc349191150323e5ba166608b152970de2c056f677fe5129bf9319 mesa-git-68abc0731715b2ec3048d0944250b96a5302b4bc.tar.gz
cdf22d2da3328e116c379264886bd01fd3ad5cc45fe03dc6fd97bdc4794502598ee195c0b9d975fa264d6ac31c6fa108c0535c91800ecf4fcabfd308e53074cc adjust-cache-deflate-buffer.patch
cf849044d6cc7d2af4ff015208fb09d70bf9660538699797da21bda2ecb7c1892d312af83d05116afd826708d9caafb1d05a13f09139c558aea6fee931e3eee7 musl-fix-includes.patch
9aa207a38d538abbd8e7a7210e3081508563e85e8c27b2269b8f40fd62d9fc6fee0cb2f573a0e62c42f8ba0fb85740459b761f009d5991cfd9813d7614541908 add-use-elf-tls.patch
6a42ef5d60ccad7e39dee7b3a09b8a884548ce65af3fb17cd1bbd453cee0df7b367968b179e4b54fbc606b29753a1bab74f8c6136b1efaf4cfb9f084d9e76c66 time-fix.patch"