Building Vala with the Meson Build System

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:

  1. Ninja build system
  2. Python 3.4, see Meson GitHub issue #1790 for progress on switching to Python 3.5+

  3. 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

It will also give easier resolution to a number of bugs:

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 Mesonmake TargetDescription
all
all-bindingscd vapi && make all-bindings
bootstrapBuild using distributed C files from tarball. No need for valac to be installed.
checkRun test suite
clean
config.h.inProduced by autoconf, then config.h is produced
coverage
coverage-report
distProduce tarball for distribution, includes C files
distcheck
gen-Changelog
gen-introspectExecutable target
gen-version
gidl-bindings
gir-bindings
htmlProduce HTML version of documentation, currently the manual
install
libvala-0.38.pc
libvala.pc
manpages
pdfGenerate PDF version of documentation,currently the manual. Requires WeasyPrint to be installed.
test
uninstall
update-manual-from-wiki
valacExecutable target
vapigenExecutable target
version.h

Details for Targets

Projects/Vala/DeveloperDocumentation/Meson (last edited 2017-05-23 17:40:02 by AlThomas)