I’ve recently finished a makefile to make easy to create GTK+ applications as well as GTK+ libraries using Vala programing language.
While Vala allows you to use UI files generated by Glade as templates to create custom widgets, is recommended you add these ui files as resources to your application or library’s binaries, in order to build your User Interface. While Vala custom widgets are out of scope of this post, we will talk about how I’ve created a makefile to be imported into your
Makefile.am for GTK+ resources embedding.
vala_gtk.mk, is a file to be included in your Makefile.am, after you include vala.mk or valalib.mk, depending on your project. Use the first for GKT+ applications; the last when creating UI libraries.
Once this pre-requisites are met, you are ready to set up a GTK+ application, because vala_gtk.mk, adds to your
gtk+-3.0 package, but the most important, it adds a reference to the XML file with all your resources to be embedded into your application or library binaries. This is required in order to Vala’s compiler to find all your UI files for widgets templates or simple build using
GtkBuilder; also images, and any other kind of file can be added as resource, like licenses, texts, and others.
glib-compile-resources is used to generate a C source code file and its header, for all resources, to compiled with your project’s target. Once it is compiled this way, all your resources will be available using
GResource or any other function using GLib resources.
For GNOME Builder, I’ll send a patch for it to add an Autotools template to create both applications and libraries for GTK+ written in Vala with resource compilation support.
May be in the near feature, this file could be splitted to include just resource generation as
resources.mk, in order to use it when GTK+ is not used at all, but this is another history and a good reason to write some thing about.