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 |