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.
85 lines
2.9 KiB
85 lines
2.9 KiB
--- |
|
title: Release 1.0.0 |
|
short-description: Release notes for 1.0.0 |
|
... |
|
|
|
# New features |
|
|
|
Meson 1.0.0 was released on 23 December 2022 |
|
## Compiler check functions `prefix` kwargs accepts arrays |
|
|
|
The `prefix` kwarg that most compiler check functions support |
|
now accepts an array in addition to a string. The elements of the |
|
array will be concatenated separated by a newline. |
|
|
|
This makes it more readable to write checks that need multiple headers |
|
to be included: |
|
|
|
```meson |
|
cc.check_header('GL/wglew.h', prefix : ['#include <windows.h>', '#include <GL/glew.h>']) |
|
``` |
|
|
|
instead of |
|
|
|
```meson |
|
cc.check_header('GL/wglew.h', prefix : '#include <windows.h>\n#include <GL/glew.h>']) |
|
``` |
|
|
|
## Flags removed from cpp/objcpp warning level 1 |
|
|
|
`-Wnon-virtual-dtor` is no longer implied by `meson setup -Dwarning_level=1`. |
|
|
|
## Developer environment improvements |
|
|
|
When cross compiling, the developer environment now sets all environment |
|
variables for the HOST machine. It now also sets `QEMU_LD_PREFIX` to the |
|
`sys_root` value from cross file if property is defined. That means that cross |
|
compiled executables can often be run transparently on the build machine, for |
|
example when cross compiling for aarch64 linux from x86_64 linux. |
|
|
|
A new argument `--workdir` has been added, by default it is set to build |
|
directory. For example, `meson devenv -C builddir --workdir .` can be used to |
|
remain in the current dir (often source dir) instead. |
|
|
|
`--dump` now prints shell commands like `FOO="/prepend/path:$FOO:/append/path"`, |
|
using the literal `$FOO` instead of current value of `FOO` from environment. |
|
This makes easier to evaluate those expressions in a different environment. |
|
|
|
## Deprecate `java.generate_native_headers`, rename to `java.native_headers` |
|
|
|
The functions operate in the exact same way. The new name matches more with |
|
Meson function name styling. |
|
|
|
## rust.bindgen accepts a dependency argument |
|
|
|
The `bindgen` method of the `rust` module now accepts a dependencies argument. |
|
Any include paths in these dependencies will be passed to the underlying call to |
|
`clang`, and the call to `bindgen` will correctly depend on any generatd sources. |
|
|
|
## String arguments to the rust.bindgen include_directories argument |
|
|
|
Most other cases of include_directories accept strings as well as |
|
`IncludeDirectory` objects, so lets do that here too for consistency. |
|
|
|
## The Rust module is stable |
|
|
|
Mesa is using the rust module in production, so it's time to mark it as stable. |
|
|
|
## `in` operator for strings |
|
|
|
`in` and `not in` operators now works on strings, in addition to arrays and |
|
dictionaries. |
|
|
|
``` |
|
fs = import('fs') |
|
if 'something' in fs.read('somefile') |
|
# True |
|
endif |
|
``` |
|
|
|
## `warning-level=everything` option |
|
|
|
The new `everything` value for the built-in `warning_level` enables roughly all applicable compiler warnings. |
|
For clang and MSVC, this simply enables `-Weverything` or `/Wall`, respectively. |
|
For GCC, meson enables warnings approximately equivalent to `-Weverything` from clang. |
|
|
|
|