parent
675b47b069
commit
0b7b4a3d9e
16 changed files with 112 additions and 88 deletions
@ -0,0 +1,111 @@ |
||||
--- |
||||
title: Release 1.4.0 |
||||
short-description: Release notes for 1.4.0 |
||||
... |
||||
|
||||
# New features |
||||
|
||||
Meson 1.4.0 was released on 12 March 2024 |
||||
|
||||
## Added support for `[[@build_tgt]]`, `[[@custom_tgt]]`, and `[[@custom_idx]]` to certain FS module functions |
||||
|
||||
Support for `[[@build_tgt]]`, `[[@custom_tgt]]`, and `[[@custom_idx]]` was |
||||
added to the following FS module APIs: |
||||
|
||||
- `fs.name` |
||||
- `fs.parent` |
||||
- `fs.replace_suffix` |
||||
- `fs.stem` |
||||
|
||||
## Meson now reads the project version of cmake subprojects |
||||
|
||||
CMake subprojects configured by meson will now have their project |
||||
version set to the project version in their CMakeLists.txt. This |
||||
allows version constraints to be properly checked when falling back to |
||||
a cmake subproject. |
||||
|
||||
## `ndebug` setting now controls C++ stdlib assertions |
||||
|
||||
The `ndebug` setting, if disabled, now passes preprocessor defines to enable |
||||
debugging assertions within the C++ standard library. |
||||
|
||||
For GCC, `-D_GLIBCXX_ASSERTIONS=1` is set. |
||||
|
||||
For Clang, `-D_GLIBCXX_ASSERTIONS=1` is set to cover libstdc++ usage, |
||||
and `-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE` or |
||||
`-D_LIBCPP_ENABLE_ASSERTIONS=1` is used depending on the Clang version. |
||||
|
||||
## `stldebug` gains Clang support |
||||
|
||||
For Clang, we now pass `-D_GLIBCXX_DEBUG=1` if `debugstl` is enabled, and |
||||
we also pass `-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG`. |
||||
|
||||
## New `unset()` method on `environment` objects |
||||
|
||||
[[@env]] now has an [[env.unset]] method to ensure an existing environment |
||||
is *not* defined. |
||||
|
||||
## File object now has `full_path()` method |
||||
|
||||
Returns a full path pointing to the file. This is useful for printing the path |
||||
with e.g [[message]] function for debugging purpose. |
||||
|
||||
**NOTE:** In most cases using the object itself will do the same job |
||||
as this and will also allow Meson to setup dependencies correctly. |
||||
|
||||
## New numpy custom dependency |
||||
|
||||
Support for `dependency('numpy')` was added, via supporting the `numpy-config` tool and |
||||
pkg-config support, both of which are available since NumPy 2.0.0. |
||||
|
||||
Config-tool support is useful because it will work out of the box when |
||||
``numpy`` is installed, while the pkg-config file is located inside python's |
||||
site-packages, which makes it impossible to use in an out of the box manner |
||||
without setting `PKG_CONFIG_PATH`. |
||||
|
||||
## `depends` kwarg now supported by compiler.preprocess() |
||||
|
||||
It is now possible to specify the dependent targets with `depends:` |
||||
for compiler.preprocess(). These targets should be built before the |
||||
preprocessing starts. |
||||
|
||||
## Added `preserve_paths` keyword argument to qt module functions. |
||||
|
||||
In `qt4`, `qt5`, and `qt6` modules, `compile_ui`, `compile_moc`, and |
||||
`preprocess` functions now have a `preserve_paths` keyword argument. |
||||
|
||||
If `'true`, it specifies that the output files need to maintain their directory |
||||
structure inside the target temporary directory. For instance, when a file |
||||
called `subdir/one.input` is processed it generates a file |
||||
`{target private directory}/subdir/one.out` when `true`, |
||||
and `{target private directory}/one.out` when `false` (default). |
||||
|
||||
## Bindgen will now use Meson's heuristic for what is a C++ header |
||||
|
||||
Bindgen natively assumes that a file with the extension `.hpp` is a C++ header, |
||||
but that everything else is a C header. Meson has a whole list of extensions it |
||||
considers to be C++, and now will automatically look for those extensions and |
||||
set bindgen to treat those as C++ |
||||
|
||||
## Overriding bindgen language setting |
||||
|
||||
Even though Meson will now tell bindgen to do the right thing in most cases, |
||||
there may still be cases where Meson does not have the intended behavior, |
||||
specifically with headers with a `.h` suffix, but are C++ headers. |
||||
|
||||
## Bindgen now uses the same C/C++ std as the project as a whole |
||||
|
||||
Which is very important for C++ bindings. |
||||
|
||||
## Tests now abort on errors by default under more sanitizers |
||||
|
||||
Sanitizers like MemorySanitizer do not abort |
||||
by default on detected violations. Meson now exports `MSAN_OPTIONS` (in addition to |
||||
`ASAN_OPTIONS` and `UBSAN_OPTIONS` from a previous release) when unset in the |
||||
environment to provide sensible abort-by-default behavior. |
||||
|
||||
## Use `custom_target` as test executable |
||||
|
||||
The [[test]] function now accepts [[@custom_tgt]] and [[@custom_idx]] for the |
||||
command to execute. |
||||
|
@ -1,9 +0,0 @@ |
||||
## Added support for `[[@build_tgt]]`, `[[@custom_tgt]]`, and `[[@custom_idx]]` to certain FS module functions |
||||
|
||||
Support for `[[@build_tgt]]`, `[[@custom_tgt]]`, and `[[@custom_idx]]` was |
||||
added to the following FS module APIs: |
||||
|
||||
- `fs.name` |
||||
- `fs.parent` |
||||
- `fs.replace_suffix` |
||||
- `fs.stem` |
@ -1,6 +0,0 @@ |
||||
## Meson now reads the project version of cmake subprojects |
||||
|
||||
CMake subprojects configured by meson will now have their project |
||||
version set to the project version in their CMakeLists.txt. This |
||||
allows version constraints to be properly checked when falling back to |
||||
a cmake subproject. |
@ -1,10 +0,0 @@ |
||||
## `ndebug` setting now controls C++ stdlib assertions |
||||
|
||||
The `ndebug` setting, if disabled, now passes preprocessor defines to enable |
||||
debugging assertions within the C++ standard library. |
||||
|
||||
For GCC, `-D_GLIBCXX_ASSERTIONS=1` is set. |
||||
|
||||
For Clang, `-D_GLIBCXX_ASSERTIONS=1` is set to cover libstdc++ usage, |
||||
and `-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE` or |
||||
`-D_LIBCPP_ENABLE_ASSERTIONS=1` is used depending on the Clang version. |
@ -1,4 +0,0 @@ |
||||
## `stldebug` gains Clang support |
||||
|
||||
For Clang, we now pass `-D_GLIBCXX_DEBUG=1` if `debugstl` is enabled, and |
||||
we also pass `-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG`. |
@ -1,4 +0,0 @@ |
||||
## New `unset()` method on `environment` objects |
||||
|
||||
[[@env]] now has an [[env.unset]] method to ensure an existing environment |
||||
is *not* defined. |
@ -1,7 +0,0 @@ |
||||
## File object now has `full_path()` method |
||||
|
||||
Returns a full path pointing to the file. This is useful for printing the path |
||||
with e.g [[message]] function for debugging purpose. |
||||
|
||||
**NOTE:** In most cases using the object itself will do the same job |
||||
as this and will also allow Meson to setup dependencies correctly. |
@ -1,9 +0,0 @@ |
||||
## New numpy custom dependency |
||||
|
||||
Support for `dependency('numpy')` was added, via supporting the `numpy-config` tool and |
||||
pkg-config support, both of which are available since NumPy 2.0.0. |
||||
|
||||
Config-tool support is useful because it will work out of the box when |
||||
``numpy`` is installed, while the pkg-config file is located inside python's |
||||
site-packages, which makes it impossible to use in an out of the box manner |
||||
without setting `PKG_CONFIG_PATH`. |
@ -1,5 +0,0 @@ |
||||
## `depends` kwarg now supported by compiler.preprocess() |
||||
|
||||
It is now possible to specify the dependent targets with `depends:` |
||||
for compiler.preprocess(). These targets should be built before the |
||||
preprocessing starts. |
@ -1,10 +0,0 @@ |
||||
## Added `preserve_paths` keyword argument to qt module functions. |
||||
|
||||
In `qt4`, `qt5`, and `qt6` modules, `compile_ui`, `compile_moc`, and |
||||
`preprocess` functions now have a `preserve_paths` keyword argument. |
||||
|
||||
If `'true`, it specifies that the output files need to maintain their directory |
||||
structure inside the target temporary directory. For instance, when a file |
||||
called `subdir/one.input` is processed it generates a file |
||||
`{target private directory}/subdir/one.out` when `true`, |
||||
and `{target private directory}/one.out` when `false` (default). |
@ -1,6 +0,0 @@ |
||||
## Bindgen will now use Meson's heuristic for what is a C++ header |
||||
|
||||
Bindgen natively assumes that a file with the extension `.hpp` is a C++ header, |
||||
but that everything else is a C header. Meson has a whole list of extensions it |
||||
considers to be C++, and now will automatically look for those extensions and |
||||
set bindgen to treat those as C++ |
@ -1,5 +0,0 @@ |
||||
## Overriding bindgen language setting |
||||
|
||||
Even though Meson will now tell bindgen to do the right thing in most cases, |
||||
there may still be cases where Meson does not have the intended behavior, |
||||
specifically with headers with a `.h` suffix, but are C++ headers. |
@ -1,3 +0,0 @@ |
||||
## Bindgen now uses the same C/C++ std as the project as a whole |
||||
|
||||
Which is very important for C++ bindings. |
@ -1,6 +0,0 @@ |
||||
## Tests now abort on errors by default under more sanitizers |
||||
|
||||
Sanitizers like MemorySanitizer do not abort |
||||
by default on detected violations. Meson now exports `MSAN_OPTIONS` (in addition to |
||||
`ASAN_OPTIONS` and `UBSAN_OPTIONS` from a previous release) when unset in the |
||||
environment to provide sensible abort-by-default behavior. |
@ -1,4 +0,0 @@ |
||||
## Use `custom_target` as test executable |
||||
|
||||
The [[test]] function now accepts [[@custom_tgt]] and [[@custom_idx]] for the |
||||
command to execute. |
Loading…
Reference in new issue