New features (in development)

Cargo dependencies names now include the API version

Cargo dependencies names are now in the format <package_name>-<version>-rs:

  • package_name is defined in [package] name = ... section of the Cargo.toml.
  • version is the API version deduced from [package] version = ... as follow:
    • x.y.z -> 'x'
    • 0.x.y -> '0.x'
    • 0.0.x -> '0' It allows to make different dependencies for uncompatible versions of the same crate.
  • -rs suffix is added to distinguish from regular system dependencies, for example gstreamer-1.0 is a system pkg-config dependency and gstreamer-0.22-rs is a Cargo dependency.

That means the .wrap file should have dependency_names = foo-1-rs in their [provide] section when Cargo.toml has package name foo and version 1.2.

This is a breaking change (Cargo subprojects are still experimental), previous versions were using <package_name>-rs format.

compiler.run() method is now available for all languages

It used to be only implemented for C-like and D languages, but it is now available for all languages.

Meson configure handles changes to options in more cases

Meson configure now correctly handles updates to the options file without a full reconfigure. This allows making a change to the meson.options or meson_options.txt file without a reconfigure.

For example, this now works:

meson setup builddir
git pull
meson configure builddir -Doption-added-by-pull=value

New meson format command

This command is similar to muon fmt and allows to format a meson.build document.

Support for Texas Instruments C6000 C/C++ compiler

Meson now supports the TI C6000 C/C++ compiler use for the C6000 cpu family. The example cross file is available in cross/ti-c6000.txt.

Wayland stable protocols can be versioned

The wayland module now accepts a version number for stable protocols.

wl_mod = import('unstable-wayland')

wl_mod.find_protocol(
  'linux-dmabuf',
  state: 'stable'
  version: 1
)

The results of the search are