The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.5 KiB
40 lines
1.5 KiB
5 years ago
|
---
|
||
|
short-description: Auto-detection of features like ccache and code coverage
|
||
|
...
|
||
|
|
||
|
# Feature autodetection
|
||
|
|
||
|
Meson is designed for high productivity. It tries to do as many things
|
||
|
automatically as it possibly can.
|
||
|
|
||
|
Ccache
|
||
|
--
|
||
|
|
||
|
[Ccache](https://ccache.dev/) is a cache system designed to make
|
||
|
compiling faster. When you run Meson for the first time for a given
|
||
|
project, it checks if Ccache is installed. If it is, Meson will use it
|
||
|
automatically.
|
||
|
|
||
|
If you do not wish to use Ccache for some reason, just specify your
|
||
|
compiler with environment variables `CC` and/or `CXX` when first
|
||
|
running Meson (remember that once specified the compiler can not be
|
||
|
changed). Meson will then use the specified compiler without Ccache.
|
||
|
|
||
|
Coverage
|
||
|
--
|
||
|
|
||
|
When doing a code coverage build, Meson will check for existence of
|
||
|
the binaries `gcovr`, `lcov` and `genhtml`. If version 3.3 or higher
|
||
|
of the first is found, targets called *coverage-text*, *coverage-xml*
|
||
|
and *coverage-html* are generated. Alternatively, if the latter two
|
||
|
are found, only the target *coverage-html* is generated. Coverage
|
||
|
reports can then be produced simply by calling e.g. `ninja
|
||
|
coverage-xml`. As a convenience, a high-level *coverage* target is
|
||
|
also generated which will produce all 3 coverage report types, if
|
||
|
possible.
|
||
|
|
||
|
Note that generating any of the coverage reports described above
|
||
|
requires the tests (i.e. `ninja test`) to finish running so the
|
||
|
information about the functions that are called in the tests can be
|
||
|
gathered for the report.
|