New features (in development)
Cargo workspace object
Meson now is able to parse the toplevel Cargo.toml file of the
project when the workspace() method of the Rust module is called.
This guarantees that features are resolved according to what is
in the Cargo.toml file, and in fact enables configuration of
features for the build.
The returned object also allows retrieving features and dependencies for Cargo subprojects.
While Cargo subprojects remain experimental, the Meson project will try to keep the workspace object reasonably backwards-compatible.
install_man: add support install_tag kwarg
By default install_man uses 'man' tag for its files which not always is desirable,
for example if project uses plugin functionality and plugin wants to install its own man files
it was not possible using meson install --tags xxx.
-Db_lto and -Db_pgo now supported for MSVC
-Db_lto is now supported for MSVC's /LTCG, as is -Db_lto_mode=thin
for /LTCG:INCREMENTAL. -Db_pgo is also supported, and should be used
alongside -Db_lto=true.
Python extension modules default to C ABI for Rust
py.extension_module() now defaults rust_abi to 'c', so that Rust
extension modules produce a cdylib instead of a dylib. This is the
correct crate type for Python extension modules written in Rust, and
previously had to be specified manually via rust_crate_type: 'cdylib'
or rust_abi: 'c'.
Change to handling of linker arguments for Rust
Since the Rust compiler integrates the compiler and linker phase, previous
Meson versions did not obey link_args, add_project_link_arguments
or add_global_link_arguments.
Starting in this version, add_project_link_arguments(),
add_global_link_arguments(), and the link_args keyword argument are
supported for Rust. They wrap the arguments with -Clink-arg= when
invoking rustc, and are only included when creating binary or shared
library crates.
Likewise, methods such as has_link_argument() now wrap the arguments
being tested with -Clink-arg=.
XC32 support now aware of v5.00 features
XC32 features introduced in v5.00 can now be used. This includes support for LTO auto and the C2x and CPP23 standards.
windows.compile_resources now detects header changes with rc.exe
The rc.exe resource compiler neither provides depfile support nor
allows showing includes, as is possible with C or C++ compilers.
Therefore, changes to files included by the .rc file did not trigger
recompilation of the resource file.
A workaround was added to meson by calling the preprocessor on the
.rc file to display the included headers and allow ninja to record them
as dependencies.
Added implicit_include_directories argument to windows.compile_resources
Windows module compile_resources
now have a implicit_include_directories keyword argument to automatically
add current build and source directories to the included paths when compiling
a resource.
The results of the search are