meson/README.md

105 lines
3.3 KiB
Markdown
Raw Normal View History

2016-02-24 06:40:05 +08:00
<p align="center">
2019-06-07 02:54:50 +08:00
<img src="https://mesonbuild.com/assets/images/meson_logo.png">
2016-02-24 06:40:05 +08:00
</p>
Meson® is a project to create the best possible next-generation
build system.
2016-11-23 19:17:01 +08:00
#### Status
2016-05-27 02:57:11 +08:00
2016-11-23 19:17:01 +08:00
[![PyPI](https://img.shields.io/pypi/v/meson.svg)](https://pypi.python.org/pypi/meson)
[![Build Status](https://dev.azure.com/jussi0947/jussi/_apis/build/status/mesonbuild.meson)](https://dev.azure.com/jussi0947/jussi/_build/latest?definitionId=1)
2017-05-11 09:31:25 +08:00
[![Codecov](https://codecov.io/gh/mesonbuild/meson/coverage.svg?branch=master)](https://codecov.io/gh/mesonbuild/meson/branch/master)
2016-05-27 02:57:11 +08:00
#### Dependencies
2016-02-24 06:40:05 +08:00
- [Python](https://python.org) (version 3.7 or newer)
2020-11-22 09:55:51 +08:00
- [Ninja](https://ninja-build.org) (version 1.8.2 or newer)
2016-02-24 06:40:05 +08:00
Latest Meson version supporting previous Python versions:
- Python 3.6: **0.61.5**
- Python 3.5: **0.56.2**
- Python 3.4: **0.45.1**
#### Installing from source
2016-02-29 05:37:36 +08:00
2020-02-04 06:51:11 +08:00
Meson is available on [PyPi](https://pypi.python.org/pypi/meson), 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`.
2020-02-04 06:51:11 +08:00
If you wish you can install it locally with the standard Python command:
2016-02-29 05:37:36 +08:00
2020-02-04 06:51:11 +08:00
```console
python3 -m pip install meson
```
2016-02-24 06:40:05 +08:00
2020-02-04 06:51:11 +08:00
For builds using Ninja, Ninja can be downloaded directly from Ninja
[GitHub release page](https://github.com/ninja-build/ninja/releases)
or via [PyPi](https://pypi.python.org/pypi/ninja)
2020-02-04 06:51:11 +08:00
```console
python3 -m pip install ninja
```
2020-02-04 06:51:11 +08:00
More on Installing Meson build can be found at the
[getting meson page](https://mesonbuild.com/Getting-meson.html).
#### Creating a standalone script
Meson can be run as a [Python zip
app](https://docs.python.org/3/library/zipapp.html). To generate the
executable run the following command:
./packaging/create_zipapp.py --outfile meson.pyz --interpreter '/usr/bin/env python3' <source checkout>
#### Running
2016-02-24 06:40:05 +08:00
Meson requires that you have a source directory and a build directory
2019-06-07 02:54:50 +08:00
and that these two are different. In your source root must exist a
file called `meson.build`. To generate the build system run this
command:
2016-02-24 06:40:05 +08:00
`meson setup <source directory> <build directory>`
2016-02-24 06:40:05 +08:00
2016-03-25 00:13:32 +08:00
Depending on how you obtained Meson the command might also be called
`meson.py` instead of plain `meson`. In the rest of this document we
are going to use the latter form.
2016-02-24 06:40:05 +08:00
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:
2020-02-04 06:51:11 +08:00
```console
cd <source root>
meson setup builddir
2020-02-04 06:51:11 +08:00
```
2016-02-24 06:40:05 +08:00
To compile, cd into your build directory and type `ninja`. To run unit
tests, type `ninja test`.
2020-02-04 06:51:11 +08:00
More on running Meson build system commands can be found at the
[running meson page](https://mesonbuild.com/Running-Meson.html)
or by typing `meson --help`.
2016-02-24 06:40:05 +08:00
#### Contributing
2016-02-24 06:40:05 +08:00
2019-06-07 02:54:50 +08:00
We love code contributions. See the [contribution
2020-02-04 06:51:11 +08:00
page](https://mesonbuild.com/Contributing.html) on the website for
2016-02-24 06:40:05 +08:00
details.
#### IRC
2016-02-24 06:40:05 +08:00
The channel to use is `#mesonbuild` either via Matrix ([web
interface][matrix_web]) or [OFTC IRC][oftc_irc].
2016-02-24 06:40:05 +08:00
[matrix_web]: https://app.element.io/#/room/#mesonbuild:matrix.org
[oftc_irc]: https://www.oftc.net/
2016-02-24 06:40:05 +08:00
#### Further info
2016-02-24 06:40:05 +08:00
2016-02-29 05:37:36 +08:00
More information about the Meson build system can be found at the
2019-06-07 02:54:50 +08:00
[project's home page](https://mesonbuild.com).
2016-02-24 06:40:05 +08:00
2020-02-04 06:51:11 +08:00
Meson is a registered trademark of ***Jussi Pakkanen***.