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.
88 lines
3.0 KiB
88 lines
3.0 KiB
--- |
|
title: Release 0.41 |
|
short-description: Release notes for 0.41 (preliminary) |
|
... |
|
|
|
**Preliminary, 0.41.0 has not been released yet.** |
|
|
|
# New features |
|
|
|
Add features here as code is merged to master. |
|
|
|
## Dependency Handler for LLVM |
|
|
|
Native support for linking against LLVM using the `dependency` function. |
|
|
|
## vcs_tag keyword fallback is is now optional |
|
|
|
The `fallback` keyword in `vcs_tag` is now optional. If not given, its value |
|
defaults to the return value of `meson.project_version()`. |
|
|
|
## Better quoting of special characters in ninja command invocations |
|
|
|
The ninja backend now quotes special characters that may be interpreted by |
|
ninja itself, providing better interoperability with custom commands. This |
|
support may not be perfect; please report any issues found with special |
|
characters to the issue tracker. |
|
|
|
## Pkgconfig support for custom variables |
|
|
|
The Pkgconfig module object can add arbitrary variables to the generated .pc |
|
file with the new `variables` keyword: |
|
```meson |
|
pkg.generate(libraries : libs, |
|
subdirs : h, |
|
version : '1.0', |
|
name : 'libsimple', |
|
filebase : 'simple', |
|
description : 'A simple demo library.', |
|
variables : ['datadir=${prefix}/data']) |
|
``` |
|
|
|
## A target for creating tarballs |
|
|
|
Creating distribution tarballs is simple: |
|
|
|
ninja dist |
|
|
|
This will create a `.tar.xz` archive of the source code including |
|
submodules without any revision control information. This command also |
|
verifies that the resulting archive can be built, tested and |
|
installed. This is roughly equivalent to the `distcheck` target in |
|
other build systems. Currently this only works for projects using Git |
|
and only with the Ninja backend. |
|
|
|
## Support for passing arguments to Rust compiler |
|
|
|
Targets for building rust now take a `rust_args` keyword. |
|
|
|
## Code coverage export for tests |
|
|
|
Code coverage can be generated for tests by passing the `--cov` argument to |
|
the `run_tests.py` test runner. Note, since multiple processes are used, |
|
coverage must be combined before producing a report (`coverage3 combine`.) |
|
|
|
## Reproducible builds |
|
|
|
All known issues have been fixed and Meson can now build reproducible Debian |
|
packages out of the box. |
|
|
|
## Extended template substitution in configure_file |
|
|
|
The output argument of `configure_file()` is parsed for @BASENAME@ and |
|
@PLAINNAME@ substitutions. |
|
|
|
## Cross-config property for overriding whether an exe wrapper is needed |
|
|
|
The new `needs_exe_wrapper` property allows overriding auto-detection for |
|
cases where `build_machine` appears to be compatible with `host_machine`, |
|
but actually isn't. For example when: |
|
- `build_machine` is macOS and `host_machine` is the iOS Simulator |
|
- the `build_machine`'s libc is glibc but the `host_machine` libc is uClibc |
|
- code relies on kernel features not available on the `build_machine` |
|
|
|
## Support for capturing stdout of a command in configure_file |
|
|
|
`configure_file()` now supports a new keyword - `capture`. When this argument |
|
is set to true, Meson captures `stdout` of the `command` and writes it to |
|
the target file specified as `output`.
|
|
|