diff --git a/local/recipes/libs/mesa/recipe.toml b/local/recipes/libs/mesa/recipe.toml new file mode 100644 index 0000000000..57d7d6ec37 --- /dev/null +++ b/local/recipes/libs/mesa/recipe.toml @@ -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" +"""