This approach is available since meson 0.47.0 which we depend on.
Reviewed-by: Sergi Blanch-Torné <sergi.blanch.torne@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23127>
-Dgallium-drivers= \
-Dvulkan-drivers=freedreno \
-Dfreedreno-kmds=kgsl
- ninja -C build-android-aarch64
+ meson compile -C build-android-aarch64
Replacing Android drivers on stock Android
------------------------------------------
.. code-block:: console
- sudo docker run --rm -v `pwd`:/mesa $IMAGE ninja -C /mesa/_build
+ sudo docker run --rm -v `pwd`:/mesa $IMAGE meson compile -C /mesa/_build
Running specific CI jobs
------------------------
cd $TOP/drm
meson builddir --prefix=/usr --libdir=${LIBDIR}
- ninja -C builddir
- sudo ninja -C builddir install
+ meson compile -C builddir
+ sudo meson install -C builddir
- Build Mesa:
cd $TOP/mesa
meson builddir -Dvulkan-drivers= -Dgallium-drivers=svga -Ddri-drivers= -Dglvnd=true -Dglvnd-vendor-name=mesa
- ninja -C builddir
- sudo ninja -C builddir install
+ meson compile -C builddir
+ sudo meson install -C builddir
Note that you may have to install other packages that Mesa depends
$ git clone https://gitlab.freedesktop.org/virgl/virglrenderer.git
$ cd virglrenderer
$ meson out -Dvenus=true
- $ ninja -C out
+ $ meson compile -C out
$ meson devenv -C out
$ ./vtest/virgl_test_server --venus
$ exit
$ CFLAGS=-DDRV_<I915-or-your-driver> OUT=out DESTDIR=out/install make install
$ cd ../virglrenderer
$ meson configure out -Dminigbm_allocation=true
- $ ninja -C out
+ $ meson compile -C out
Make sure a host Wayland compositor is running. Replace
``--display-window-keyboard --display-window-mouse`` by
$ git clone https://chromium.googlesource.com/chromiumos/platform2
$ cd platform2/vm_tools/sommelier
$ meson out -Dxwayland_path=/usr/bin/Xwayland -Dxwayland_gl_driver_path=/usr/lib/dri
- $ ninja -C out
+ $ meson compile -C out
$ sudo chmod 777 /dev/wl0
$ ./out/sommelier -X --glamor
--xwayland-gl-driver-path=<path-to-locally-built-gl-driver> \
After determining the correct values for the install location, configure
Mesa with
``meson configure --prefix=/usr --libdir=xxx -D dri-drivers-path=xxx``
-and then install with ``sudo ninja install``.
+and then install with ``sudo meson install``.
3. Runtime / Rendering Problems
-------------------------------
.. code-block:: console
meson setup builddir/
- ninja -C builddir/
- sudo ninja -C builddir/ install
+ meson compile -C builddir/
+ sudo meson install -C builddir/
On Windows you can also use the Visual Studio backend
.. code-block:: console
meson setup builddir/ -Dprefix="$MESA_INSTALLDIR" OTHER_OPTIONS
- ninja -C builddir/ install
+ meson install -C builddir/
where ``OTHER_OPTIONS`` is replaced by any meson configuration options you may
want. For instance, if you want to build the LLVMpipe drivers, it would look
meson setup builddir/ -Dprefix="$MESA_INSTALLDIR" \
-Dgallium-drivers=swrast -Dvulkan-drivers=swrast
- ninja -C builddir/ install
+ meson install -C builddir/
Once Mesa has built and installed to ``$MESA_INSTALLDIR``, you can run any app
against your temporary install by setting the right environment variables.
6. Building OpenGL programs with pkg-config
-------------------------------------------
-Running ``ninja install`` will install package configuration files for
+Running ``meson install`` will install package configuration files for
the pkg-config utility.
When compiling your OpenGL application you can use pkg-config to
.. code-block:: console
meson setup builddir -Dosmesa=true -Dgallium-drivers=swrast -Dvulkan-drivers=[] -Dprefix=$PWD/builddir/install
- ninja -C builddir install
+ meson install -C builddir
Make sure you have LLVM installed first if you want to use the LLVMpipe
driver.
# Configure Mesa with perfetto
mesa $ meson . build -Dperfetto=true -Dvulkan-drivers=intel,broadcom -Dgallium-drivers=
# Build mesa
- mesa $ ninja -C build
+ mesa $ meson compile -C build
# Within the Mesa repo, build perfetto
mesa $ cd subprojects/perfetto