New features (in development)
Changes to the b_sanitize option
Before 1.8 the b_sanitize
option was a combo option, which is an enumerated
set of values. In 1.8 this was changed to a free-form array of options where
available sanitizers are not hardcoded anymore but instead verified via a
compiler check.
This solves a number of longstanding issues such as:
- Sanitizers may be supported by a compiler, but not on a specific platform (OpenBSD).
- New sanitizers are not recognized by Meson.
- Using sanitizers in previously-unsupported combinations.
To not break backwards compatibility, calling get_option('b_sanitize')
continues to return the configured value as a string, with a guarantee that
address,undefined
remains ordered.
version_compare
now accept multiple compare strings
Is it now possible to compare version against multiple values, to check for a range of version for instance.
'1.5'.version_compare('>=1', '<2')
Per project subproject options rewrite
You can now define per-subproject values for all shared configuration options. As an example you might want to enable optimizations on only one subproject:
meson configure -Dnumbercruncher:optimization=3
Subproject specific values can be removed with -U
meson configure -Unumbercruncher:optimization
This is a major change in how options are handled, and the implementation will evolve over the next few releases of Meson. If this change causes an error in your builds, please report an issue on GitHub.
We have tried to keep backwards compatibility as much as possible, but this may lead to some build breakage.
New option to execute a slice of tests
When tests take a long time to run a common strategy is to slice up the tests
into multiple sets, where each set is executed on a separate machine. You can
now use the --slice i/n
argument for meson test
to create n
slices and
execute the ith
slice.
The results of the search are