This is the user manual for Meson. It currently tracks the state of Git head. If you are using an older version, some of the information here might not work for you.


Overview – Overview of the Meson build system

Running Meson – Building a project with Meson

Command-line commands

Built-in options – Built-in options to configure project properties

Using with Visual Studio – How to use Meson in Visual Studio

Meson sample – Simple project step by step explanation

Syntax – Syntax and structure of Meson files

Cross and Native File reference

Persistent native environments – Setting up native compilation

Build targets – Definition of build targets

Include directories – Instructions on handling include directories

Installing – Installing targets

Adding arguments – Adding compiler arguments

Configuration – Build-time configuration options

Compiler properties

Dependencies – Dependencies for external libraries and frameworks

Threads – Enabling thread support

External commands – Running external commands

Precompiled headers – Using precompiled headers to reduce compilation time

Unity builds – Unity builds are a technique for reducing build times

Feature autodetection – Auto-detection of features like ccache and code coverage

Generating sources – Generation of source files before compilation

Unit tests – Meson's own unit-test system

Cross compilation – Setting up cross-compilation

Localisation – Localization with GNU Gettext

Build options – Build options to configure project properties

Subprojects – Using Meson projects as subprojects within other Meson projects

Disabling parts of the build – Disabling options

clang-format – Code formatting

Modules – Meson modules for common build operations

Java – Compiling Java programs

Vala – Compiling Vala and Genie programs

D – Compiling D sources

Cython – Support for Cython in Meson

Rust – Working with Rust in Meson

IDE integration – Meson's API to integrate Meson support into an IDE

Custom build targets – Build targets for custom languages or corner-cases

Build system converters – Converting other build systems to Meson

Configuring a build directory – Configuring a pre-generated build directory

Run targets – Targets to run external commands

Creating releases – Creating releases

Creating OSX packages – Tools to create OS X packages

Creating Linux binaries – Creating universal Linux binaries

Project templates – Project templates

The results of the search are