Skip to content
The Meson Build System
Python Meson C C++ CMake Shell Other
Branch: master
Clone or download

Latest commit

jpakkane Merge pull request #6818 from mensinda/localPatch
Wrap: add local files support via *_filename
Latest commit c61f75a May 27, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
.github CI: pin pylint Apr 30, 2020
ci travis/macos: Restore the old pkg-config behaviour May 15, 2020
cross Add property to disable compiler sanity checks during cross compilation. Mar 22, 2020
data Update test.json schema to add stdout Apr 30, 2020
docs Merge pull request #6818 from mensinda/localPatch May 27, 2020
graphics New logo and license text. Closes #4921. [skip ci] Feb 13, 2019
man Bump version number for rc1. Mar 24, 2020
manual tests wrap: check whitelist subdomain Dec 6, 2019
mesonbuild Merge pull request #6818 from mensinda/localPatch May 27, 2020
msi Add cmake files to msi package. May 18, 2020
test cases Merge pull request #6818 from mensinda/localPatch May 27, 2020
tools Merge pull request #6620 from jon-turney/test-output-check May 13, 2020
.coveragerc Enable code coverage on Travis. May 21, 2017
.editorconfig Add a json schema for the test.json used in tests Apr 17, 2020
.flake8 add missing commas Jul 11, 2019
.gitattributes Fix crlf line endings Oct 29, 2018
.gitignore add pytest_cache to gitignore Oct 7, 2019
.mailmap mailmap: add couple of aliases Dec 14, 2016
.pylintrc add pylint config file. update Sider CI name Aug 2, 2019
.travis.yml travis: Fix Travis OSX build Apr 8, 2020
CODEOWNERS Add mesonbuild/ast to CODEOWNERS [skip ci] Feb 2, 2020
COPYING Start of project. Dec 23, 2012 update Apr 22, 2020 fix ninja version inconsistent Apr 20, 2020 Fix for zipapp to work Aug 7, 2018
azure-pipelines.yml ci: Add python-jsonschema Apr 17, 2020 Readme fixes. [skip ci] Jun 6, 2019 Add ability to specify project branch to install Jan 29, 2020
lgtm.yml ci: lgtm: configure for Python 3 Nov 27, 2019 sys.path requires str, not pathlib.Path Jun 10, 2018
mypy.ini mypy: Ignore missing imports Mar 5, 2020
pyproject.toml Ensure setuptools via PEP508/518 pyproject.toml Nov 2, 2019 Make just a wrapper around Jan 28, 2020 tests: Ignore all files in 'data' directories Jun 28, 2019 Merge pull request #7197 from jon-turney/test-output-check-mandatory May 25, 2020 Make colourize_console() a function Apr 30, 2020 ast: add unittest May 23, 2020
setup.cfg setup.cfg: Mark setuptools as required Apr 20, 2020 cmake: Fix relative paths for add_custom_{command,target} Feb 20, 2020
sider.yml add pylint config file. update Sider CI name Aug 2, 2019 Add an azure-pipelines.yml Oct 14, 2018

Meson® is a project to create the best possible next-generation build system.


PyPI Travis Build Status Codecov Code Quality: Python Total Alerts


  • Python (version 3.5 or newer)
  • Ninja (version 1.7 or newer)

Installing from source

Meson is available on PyPi, so it can be installed with pip3 install meson. The exact command to type to install with pip can vary between systems, be sure to use the Python 3 version of pip.

If you wish you can install it locally with the standard Python command:

python3 -m pip install meson

For builds using Ninja, Ninja can be downloaded directly from Ninja GitHub release page or via PyPi

python3 -m pip install ninja

More on Installing Meson build can be found at the getting meson page.


Meson requires that you have a source directory and a build directory and that these two are different. In your source root must exist a file called To generate the build system run this command:

meson setup <source directory> <build directory>

Depending on how you obtained Meson the command might also be called instead of plain meson. In the rest of this document we are going to use the latter form.

You can omit either of the two directories, and Meson will substitute the current directory and autodetect what you mean. This allows you to do things like this:

cd <source root>
meson setup builddir

To compile, cd into your build directory and type ninja. To run unit tests, type ninja test.

More on running Meson build system commands can be found at the running meson page or by typing meson --help.


We love code contributions. See the contribution page on the website for details.


The irc channel for Meson is #mesonbuild over at Freenode.

You can use FreeNode's official webchat to connect to this channel.

Further info

More information about the Meson build system can be found at the project's home page.

Meson is a registered trademark of Jussi Pakkanen.

You can’t perform that action at this time.