Skip to content

Add support for Meson build system

Please find attached a set of (unsquashed, work-in-progress) patches that add support for building fontconfig with the Meson build system.

The Meson build system is being adopted by projects such as GNOME, GTK, GStreamer, and there is support for it in Pango as well.

It would be fantastic to have support for building fontconfig with Meson in upstream fontconfig as it would facilitate builds of GTK, Pango, GStreamer etc. via Meson's subproject support.

Unlike autotools, Meson also supports builds on Windows with MSVC, for those who care about this (Windows developers mostly, since it means they can use native Windows tools for debugging).

I understand that from a maintainer's point of view these kind of unsolicited "add support for a different build system" patches are not always welcome, not least because they might add additional maintenance burden, so apologies in advance for that, but I'm sure the wider GStreamer/GNOME community would be happy to help going forward if there are any issues with it.

Cross-compilation is of course also supported, but I have not tested that yet and there is a CI mingw64 cross-compile job now.

To try the meson build:

$ meson --prefix=/tmp/prefix builddir
$ ninja -C builddir
$ ninja -C builddir test
$ ninja -C builddir install

I wrote python scripts for generating the fclang.h and fccase.h headers, which makes cross-compilation easier. The output is bitexact the same as on my machine with the existing C code generator.

TODO

  • rebase
  • fix windows builds
  • test macOS
  • clean-up/squash commit history a bit
Edited by Tim-Philipp Müller

Merge request reports