diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2020-10-21 16:07:31 -0700 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2021-01-05 15:10:50 -0800 |
commit | 3d80a88bd3c3dc8f9e20bbda485b0b436fd79fb3 (patch) | |
tree | d8c4fe8fd2c76920a42e4090348681169974f2af /docs/markdown/Rust-module.md | |
parent | b2c2549b93a8001d8a6d9d6da1ce756645e59160 (diff) | |
download | meson-3d80a88bd3c3dc8f9e20bbda485b0b436fd79fb3.zip meson-3d80a88bd3c3dc8f9e20bbda485b0b436fd79fb3.tar.gz meson-3d80a88bd3c3dc8f9e20bbda485b0b436fd79fb3.tar.bz2 |
modules: Add an unstable-rust module
Like other language specific modules this module is module for holding
rust specific helpers. This commit adds a test() function, which
simplifies using rust's internal unittest mechanism.
Rust tests are generally placed in the same code files as they are
testing, in contrast to languages like C/C++ and python which generally
place the tests in separate translation units. For meson this is
somewhat problematic from a repetition point of view, as the only
changes are generally adding --test, and possibly some dependencies.
The rustmod.test() method provides a mechanism to remove the repatition:
it takes a rust target, copies it, and then addes the `--test` option,
then creates a Test() target with the `rust` protocol. You can pass
additional dependencies via the `dependencies` keyword. This all makes
for a nice, DRY, test definition.
Diffstat (limited to 'docs/markdown/Rust-module.md')
-rw-r--r-- | docs/markdown/Rust-module.md | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/docs/markdown/Rust-module.md b/docs/markdown/Rust-module.md new file mode 100644 index 0000000..0fdba94 --- /dev/null +++ b/docs/markdown/Rust-module.md @@ -0,0 +1,35 @@ +--- +short-description: Rust language integration module +authors: + - name: Dylan Baker + email: dylan@pnwbakers.com + years: [2020] +... + +# Unstable Rust module + +*(new in 0.57.0)* + +**Note** Unstable modules make no backwards compatible API guarantees. + +The rust module provides helper to integrate rust code into meson. The goal +is to make using rust in meson more pleasant, while still remaining mesonic, +this means that it attempts to make rust work more like meson, rather than +meson work more like rust. + +## Functions + +### test(name: string, target: library | executable, dependencies: []Dependency) + +This function creates a new rust unittest target from an existing rust based +target, which may be a library or executable. It does this by copying the +sources and arguments passed to the original target and adding the `--test` +argument to the compilation, then creates a new test target which calls that +executable, using the rust test protocol. + +This accepts all of the keyword arguments as the +[`test`](Reference-manual.md#test) function except `protocol`, it will set +that automatically. + +Additional, test only dependencies may be passed via the dependencies +argument. |