I read something about meson in planet GNOME earlier this year. Someone was interested and blogged about it. A new fast and user friendly build system.

I’ve been using autotools for so many years now, that I can’t remember. It wasn’t very pleasant to work with it, but it worked. However, I was curious about meson and I started playing with it.

I used it in different projects at work and it fitted very well. Usual mistakes in the build files were easily detected and I began to realize that I did not spent as much time as before on the build system and that I was more focused on coding.

After sending some patches to bijiben, while they were waiting for review, I started working on the meson port of another GNOME’s application I had been looking at: gnome-todo.

This first meson patch was sent at the end of may. Soon after an initiative arose to port GNOME’s packages to meson. Yesterday, less than 5 months later, I sent my last patch porting another package to meson, which makes it port number 23.

The list of GNOME’s applications ported and their status is as follows:

Although meson has nice features, in my case, its ease of use is the biggest win. meson is usually also faster than autotools, and some of these ports, particularly the big packages, build a lot faster. Here are some raw numbers using the time command in a full build (configure, build and + install):

gnome-control-center:

  autotools meson
real 4m29,223s 1m34,726s
user 3m59,784s 5m22,009s
sys 0m33,556s 0m21,560s

gnome-online-accounts:

  autotools meson
real 2m25,265s 0m38,212s
user 2m2,687s 1m16,560s
sys 0m12,824s 0m5,317s

gvfs:

  autotools meson
real 2m22,357s 0m34,689s
user 1m58,643s 1m49,066s
sys 0m14,816s 0m9,439s

network-manager-applet:

  autotools meson
real 2m9,749s 0m36,627s
user 1m55,974s 1m43,569s
sys 0m12,887s 0m9,874s

At the moment, only 7 packages merged the patches. However, most maintainers are positive about adopting meson at some point.

Let’s see how this goes.