mesa: fork mainline recipe to local for EGL Wayland work (Phase 2.1)
The mainline recipes/libs/mesa/recipe.toml links against -lorbital and uses -Dplatforms=redox — a deprecated Orbital-only path. For the v6.0 console-to-desktop plan, Mesa must be switched to the Wayland EGL platform (-Dplatforms=wayland + -lwayland-client) so Qt6 eglfs can open a window under a Wayland compositor. Create a Red Bear fork of the mainline recipe under local/recipes/libs/mesa/ to receive the EGL Wayland changes without modifying mainline directly. This recipe is currently identical to upstream; subsequent commits will: - Remove -lorbital link flag and liborbital dep - Add wayland + libwayland-client deps - Switch -Dplatforms=redox to -Dplatforms=wayland - Verify EGL_KHR_platform_wayland loads in QEMU Phase 2.1 of the v6.0 plan: 1 week effort.
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
[source]
|
||||
git = "https://gitlab.redox-os.org/redox-os/mesa.git"
|
||||
upstream = "https://gitlab.freedesktop.org/mesa/mesa"
|
||||
branch = "redox-24.0"
|
||||
shallow_clone = true
|
||||
[build]
|
||||
template = "custom"
|
||||
dependencies = [
|
||||
"expat",
|
||||
"libdrm",
|
||||
"liborbital",
|
||||
"llvm21",
|
||||
"zlib",
|
||||
]
|
||||
dev-dependencies = [
|
||||
"llvm21.dev",
|
||||
]
|
||||
script = """
|
||||
DYNAMIC_INIT
|
||||
|
||||
#TODO: Should be CPPFLAGS but cookbook_meson isn't reading it
|
||||
export CFLAGS+=" -DHAVE_PTHREAD=1 -I${COOKBOOK_SYSROOT}/include/libdrm"
|
||||
export LLVM_CONFIG="${TARGET}-llvm-config"
|
||||
if [ -x "${HOME}/.redoxer/${TARGET}/toolchain/bin/llvm-config" ]; then
|
||||
export COOKBOOK_HOST_SYSROOT="${HOME}/.redoxer/${TARGET}/toolchain"
|
||||
fi
|
||||
export LDFLAGS+=" -lorbital"
|
||||
|
||||
mkdir -p .cookbook-tools
|
||||
ln -sf "$(command -v "${LLVM_CONFIG}")" .cookbook-tools/llvm-config
|
||||
export PATH="$(pwd)/.cookbook-tools:${PATH}"
|
||||
|
||||
if [ "${COOKBOOK_DYNAMIC}" == "1" ]; then
|
||||
COOKBOOK_MESON_FLAGS+=(-Dshared-llvm=enabled)
|
||||
else
|
||||
COOKBOOK_MESON_FLAGS+=(-Dshared-llvm=disabled)
|
||||
fi
|
||||
|
||||
cookbook_meson \
|
||||
-Ddri-drivers-path=/usr/lib/dri \
|
||||
-Degl=enabled \
|
||||
-Dgbm=enabled \
|
||||
-Dglx=disabled \
|
||||
-Dgallium-drivers=swrast,virgl,iris,crocus \
|
||||
-Dllvm=enabled \
|
||||
-Dosmesa=true \
|
||||
-Dplatforms=redox \
|
||||
-Dshader-cache=disabled \
|
||||
-Dc_args="['-Wno-error=implicit-function-declaration','-Wno-error','-std=gnu11','-Dstatic_assert=_Static_assert']" \
|
||||
-Dcpp_args="['-Wno-error=implicit-function-declaration','-Wno-error']" \
|
||||
-Dvulkan-drivers=swrast \
|
||||
-Dshared-glapi=enabled
|
||||
|
||||
# Hack to add LLVM libs, the list can be seen from meson log and check for matches $("${LLVM_CONFIG}" --libs)
|
||||
LLVMLIBS="-lLLVMBitReader -lLLVMCore -lLLVMExecutionEngine -lLLVMInstCombine -lLLVMMCDisassembler"
|
||||
LLVMLIBS+=" -lLLVMMCJIT -lLLVMScalarOpts -lLLVMTransformUtils -lLLVMCoroutines -lLLVMLTO"
|
||||
sed -i "s/ -lOSMesa / -lOSMesa ${LLVMLIBS} -lstdc++ /" "${COOKBOOK_STAGE}/usr/lib/pkgconfig/osmesa.pc"
|
||||
"""
|
||||
Reference in New Issue
Block a user