Last week I was at this year's GUADEC conference and listened to
a very interesting talk on the Meson build system which is
designed for very fast builds and as a much more modern
replacement for Automake with a simple syntax.
In the past few days I added support for D (all three major
compilers) to the Meson build system, with some great results-
While dub is awesome for simple and small projects, you usually
want a bit more for bigger projects, especially if you are mixing
D code with C bits or are linking against libraries written in C
(which is what pretty much all the D code I write does
You also make the life of Linux distribution packagers much
easier with this, since dub isn't really working well for us in
that usecase (only one D package in Debian uses it at time, and
only for an experiment I made to check whether using dub is
viable. At time, dub is pretty high up on my D complaints
So, should you consider adding Meson support for your project?
A few highlights of Meson include:
* Very fast builds using the Ninja build tool (which is also
used by projects like Google Chrome) - for a project like
Terminix, dub with LDC builds in 8.6s, while Meson and ninja take
only 6s here. The change is even more dramatic with a lot more D
* Support for installing files, and generally good support for
* Mixing in parts written in C or C++ is very simple.
* Depending on system libraries (Cairo, Libarchive, GTK+) is
really easy, and you can also version the dependencies.
* You can configure files at build time and also run arbitrary
commands to e.g. generate additional code to compile in or to
compile additional resources, which is needed for a lot of
If you want to see a real world example on how to use Meson,
check out my example patch for Terminix:
For simpler examples, check out the D unit tests for Meson:
Meson supports building files for Visual Studio and is supposed
to work on Windows as well. I developed the D pieces solely on
Linux and couldn't test anything on Windows yet (but it would be
interesting to know if this works).
D support will be available in Meson with the upcoming 0.34
release, which is when it will show up in Linux distributions
like Ubuntu and Debian.
Until then, it's really easy to try Meson from Git master.
I hope you find this as useful as I do :-)