For me, create GTK+ custom widgets is a very common task. Using templates for them, too.
Use GTK+ widgets defined by UI XML files, may be created by Glade, is a powerful feature.
Once you create your UI file, you should add it to a gresource XML file too, in order to use
glib-compile-resources to compile an embed, if you wish, in your binaries.
Once your project is big enough, you may fall in a large gresource XML file. Regenerate compiled resources based on resources changes, can be tricky, and a hand work.
So I’ve created
gresg, a tool to generate automatically an XML gresource file based in a list of files to be compiled with
glib-compile-resources. This will help you to trigger a rebuild of compiled resources at any time you make changes in your files.
gresg, is written in Vala and uses GXml to generate XML resources files. As you can see in gresg’s repository, is a very small program.
If you are using Meson you can create a custom target to generate your XML resources, but you need this patch applied to Vala to take all its advantages and automatic re-build of resources.
After a call, Yannick has pushed a patch to add Meson build system to GXml. This is my first time using Meson and I really love it.
After a set of patches, I’ve managed to fix most installation and Unit Test integration.
Meson is well documented and provides a clean syntax.
Vala support is really good. In Autotools I’ve added some obscure rules to fix some old bugs. With Meson GXml has just a few ones, no obscure, commands in order to build Vala documentation and GObject Introspection binary files.
Meson exposes a bug in TDocument parsing, same test pass without error in Autotools. Using
mesontest --gdb I was able to run tests in
gdb, making things much convenient to debug than in Autotools, unless for the way I managed to debug in the past.
Meson is really fast! This will improve my development/tests/back to development processes, reducing time.
Next step is to find a way to get GXml compiled under Visual Studio, but first Gee needs to get Meson support too.