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
|
|
|
[](https://pypi.python.org/pypi/meson)
|
|
|
|
[](https://travis-ci.org/mesonbuild/meson)
|
2018-11-13 03:25:33 +08:00
|
|
|
[](https://dev.azure.com/jussi0947/jussi/_build/latest?definitionId=1)
|
2017-05-11 09:31:25 +08:00
|
|
|
[](https://codecov.io/gh/mesonbuild/meson/branch/master)
|
2018-09-17 19:47:43 +08:00
|
|
|
[](https://lgtm.com/projects/g/mesonbuild/meson/context:python)
|
|
|
|
[](https://lgtm.com/projects/g/mesonbuild/meson/alerts)
|
2016-05-27 02:57:11 +08:00
|
|
|
|
2017-03-25 23:31:30 +08:00
|
|
|
#### Dependencies
|
2016-02-24 06:40:05 +08:00
|
|
|
|
2019-06-07 02:54:50 +08:00
|
|
|
- [Python](https://python.org) (version 3.5 or newer)
|
2017-01-09 19:27:04 +08:00
|
|
|
- [Ninja](https://ninja-build.org) (version 1.5 or newer)
|
2016-02-24 06:40:05 +08:00
|
|
|
|
2017-03-25 23:31:30 +08:00
|
|
|
#### Installing from source
|
2016-02-29 05:37:36 +08:00
|
|
|
|
2016-02-24 06:40:05 +08:00
|
|
|
You can run Meson directly from a revision control checkout or an
|
2016-02-29 05:45:10 +08:00
|
|
|
extracted tarball. If you wish you can install it locally with the
|
2019-11-02 22:17:13 +08:00
|
|
|
standard Python command
|
|
|
|
|
|
|
|
```sh
|
|
|
|
python3 -m pip install meson <your options here>
|
|
|
|
```
|
2016-02-29 05:37:36 +08:00
|
|
|
|
|
|
|
Meson is also available from
|
|
|
|
[PyPi](https://pypi.python.org/pypi/meson), so it can be installed
|
2016-03-20 20:25:58 +08:00
|
|
|
with `pip3 install meson` (this does not require a source checkout,
|
|
|
|
pip will download the package automatically). The exact command to
|
2019-06-07 02:54:50 +08:00
|
|
|
type to install with Pip can vary between systems, be sure to use the
|
|
|
|
Python 3 version of Pip.
|
2016-02-24 06:40:05 +08:00
|
|
|
|
2017-03-25 23:31:30 +08:00
|
|
|
#### 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 <source directory> <build directory>`
|
|
|
|
|
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:
|
|
|
|
|
2017-04-25 08:26:22 +08:00
|
|
|
`cd source_root; mkdir builddir; cd builddir; meson ..`
|
2016-02-29 05:38:34 +08:00
|
|
|
|
2016-02-29 05:45:10 +08:00
|
|
|
or
|
|
|
|
|
2017-04-25 08:26:22 +08:00
|
|
|
`cd source_root; mkdir builddir; meson builddir`
|
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`.
|
|
|
|
|
|
|
|
Install is the same but it can take an extra argument:
|
|
|
|
|
|
|
|
`DESTDIR=/destdir/path ninja install`
|
|
|
|
|
|
|
|
`DESTDIR` can be omitted. If you are installing to system directories,
|
|
|
|
you may need to run this command with sudo.
|
|
|
|
|
|
|
|
|
2017-03-25 23:31:30 +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
|
|
|
|
page](https://mesonbuild.com/Contributing.html) on the web site for
|
2016-02-24 06:40:05 +08:00
|
|
|
details.
|
|
|
|
|
|
|
|
|
2017-03-25 23:31:30 +08:00
|
|
|
#### IRC
|
2016-02-24 06:40:05 +08:00
|
|
|
|
2016-02-29 05:37:36 +08:00
|
|
|
The irc channel for Meson is `#mesonbuild` over at Freenode.
|
2016-02-24 06:40:05 +08:00
|
|
|
|
2018-11-30 16:04:34 +08:00
|
|
|
You can use [FreeNode's official webchat][meson_irc]
|
2018-09-27 21:12:22 +08:00
|
|
|
to connect to this channel.
|
|
|
|
|
2018-11-30 16:04:34 +08:00
|
|
|
[meson_irc]: https://webchat.freenode.net/?channels=%23mesonbuild
|
2016-02-24 06:40:05 +08:00
|
|
|
|
2017-03-25 23:31:30 +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
|
|
|
|
2018-09-27 21:12:22 +08:00
|
|
|
Meson is a registered trademark of Jussi Pakkanen.
|