aboutsummaryrefslogtreecommitdiffstats
path: root/meson/docs/markdown/Feature-autodetection.md
diff options
context:
space:
mode:
authorAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
committerAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
commitaf1a266670d040d2f4083ff309d732d648afba2a (patch)
tree2fc46203448ddcc6f81546d379abfaeb323575e9 /meson/docs/markdown/Feature-autodetection.md
parente02cda008591317b1625707ff8e115a4841aa889 (diff)
Add submodule dependency filesHEADmaster
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'meson/docs/markdown/Feature-autodetection.md')
-rw-r--r--meson/docs/markdown/Feature-autodetection.md39
1 files changed, 39 insertions, 0 deletions
diff --git a/meson/docs/markdown/Feature-autodetection.md b/meson/docs/markdown/Feature-autodetection.md
new file mode 100644
index 000000000..4d366d939
--- /dev/null
+++ b/meson/docs/markdown/Feature-autodetection.md
@@ -0,0 +1,39 @@
+---
+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. `meson compile
+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. `meson test`) to finish running so the
+information about the functions that are called in the tests can be
+gathered for the report.