Building Vala with the Meson Build System
Contents
Introduction
Meson is a domain specific language for generating build system configurations. The reference implementation of Meson is written in Python. Currently Meson only supports the Ninja build system backend for Vala.
A complete switch of Vala's build system from autotools to Meson and Ninja would introduce the following dependencies:
- Ninja build system
Python 3.4, see Meson GitHub issue #1790 for progress on switching to Python 3.5+
- Meson, version x.x.x
Using Ninja and Meson will give contributors to Vala the advantages of:
- Faster incremental builds
- Easier maintenance of the build system
There is a GNOME meta bug Bug 782980 - [meta] Port modules to meson build system with progress shown at GNOME Goal: Port modules to use Meson build system.
Progress
Progress is at the wip/meson branch of the Vala source.
| Implemented with Meson | make Target | Description |
|---|---|---|
| all | ||
| all-bindings | cd vapi && make all-bindings | |
| bootstrap | Build using distributed C files from tarball. No need for valac to be installed. | |
| check | Run test suite | |
| clean | ||
| config.h.in | Produced by autoconf, then config.h is produced | |
| coverage | ||
| coverage-report | ||
| dist | Produce tarball for distribution, includes C files | |
| distcheck | ||
| gen-Changelog | ||
| gen-introspect | Executable target | |
| gen-version | ||
| gidl-bindings | ||
| gir-bindings | ||
| html | Produce HTML version of documentation, currently the manual | |
| install | ||
| libvala-0.38.pc | ||
| libvala.pc | ||
| manpages | ||
| Generate PDF version of documentation,currently the manual. Requires WeasyPrint to be installed. | ||
| test | ||
| uninstall | ||
| update-manual-from-wiki | ||
| valac | Executable target | |
| vapigen | Executable target | |
| version.h |