Generate relnotes for 1.4.0.

This commit is contained in:
Jussi Pakkanen 2024-03-13 21:20:29 +02:00
parent 675b47b069
commit 0b7b4a3d9e
16 changed files with 112 additions and 88 deletions

View File

@ -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.

View File

@ -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`

View File

@ -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.

View File

@ -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.

View File

@ -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`.

View File

@ -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.

View File

@ -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.

View File

@ -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`.

View File

@ -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.

View File

@ -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).

View File

@ -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++

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -88,6 +88,7 @@ index.md
Wrap-best-practices-and-tips.md
Shipping-prebuilt-binaries-as-wraps.md
Release-notes.md
Release-notes-for-1.4.0.md
Release-notes-for-1.3.0.md
Release-notes-for-1.2.0.md
Release-notes-for-1.1.0.md