March 18, 2021
Over the past few months, I've been working on a side project to improve Meson sub-project support. The best stress test is to build projects on Windows, without
msys2, because it has no dependencies or tools installed (e.g. pkg-config). Meson has to build everything itself from scratch.
Here are step-by-step instructions, starting from a fresh Windows 10 installation, on how to run a
Download from https://visualstudio.microsoft.com/vs/community. Make sure to check the box "Desktop development with C++".
Download from https://www.python.org/downloads. Make sure to check the box "Add python to PATH".
Download from https://gitforwindows.org. It asks many questions, however the default is always good enough, so next, next, next...
From the Windows start menu, search for
x64 Native Tools Command Prompt for VS 2019. That will open a terminal configured to use MSVC x64 tools.
First let's create a directory where we'll fetch the source code:
mkdir C:\src cd C:\src
Let's also configure git:
git config --global user.email "email@example.com" git config --global user.name "Xavier Claessens"
Installing the latest release of Meson (requires >=0.57.0) can be done with a simple command:
C:\src>pip install meson
Fetch gtk from git:
C:\src>git clone https://gitlab.gnome.org/GNOME/gtk.git C:\src>cd gtk
At the time of writing !3135 is not yet merged, so we need to use my branch:
(Update March 22: This has now been merged so my branch is no longer needed.)
C:\src\gtk>git fetch https://gitlab.gnome.org/xclaesse/gtk.git meson-install-script C:\src\gtk>git checkout -b meson-install-script FETCH_HEAD
During the GTK4 configuration, Meson will download and configure all dependencies. Great efforts have been made across all dependencies to make them work out of the box on Windows.
C:\src\gtk>meson setup build --prefix C:/gnome C:\src\gtk>meson compile -C build C:\src\gtk>meson install -C build
That's all, you can now run demo applications!
It works out of the box on my VirtualBox machine, however on my physical PC with an intel GPU, I get a crash at startup:
Unhandled exception at 0x5211345E (ig4icd32.dll) in gtk4-demo.exe: 0xC0000005: Access violation reading location 0x00000050
This can be worked around by using
C:\src\gtk>set GSK_RENDERER=cairo C:\src\gtk>C:\gnome\bin\gtk4-demo.exe
Since this is a complete build using MSVC, it is also fully debuggable.
If you break execution, or hit a crash, it will open the source code and you can debug step by step, see the value of any variable, whether it is in gtk or in any of its dependencies.
|Debugging in Visual Studio.|
Here's a list of some of the items I would like to eventually look into:
As usual, if you have any questions about GTK4 or GStreamer on Windows, or any other platform, please contact us!
Monado now has initial support for 6DoF ("inside-out") tracking for devices with cameras and an IMU! Three free and open source SLAM/VIO…
When developing an application or a library, it is very common to want to run it without installing it, or to install it into a custom prefix…
An incredible amount has changed in Mesa and in the Vulkan ecosystems since we wrote the first Vulkan driver in Mesa for Intel hardware…
Every file system used in production has tools to try to recover from system crashes. To provide a better infrastructure for those tools,…
The PipeWire project made major strides over the past few years, bringing shiny new features, and paving the way for new possibilities in…
Over the past 18 months, we have been on a roller-coaster ride developing futex2, a new set of system calls. As part of this effort, the…