--- title: Release 0.41 short-description: Release notes for 0.41 (preliminary) ... **Preliminary, 0.41.0 has not been released yet.** # New features Add features here as code is merged to master. ## Dependency Handler for LLVM Native support for linking against LLVM using the `dependency` function. ## vcs_tag keyword fallback is is now optional The `fallback` keyword in `vcs_tag` is now optional. If not given, its value defaults to the return value of `meson.project_version()`. ## Better quoting of special characters in ninja command invocations The ninja backend now quotes special characters that may be interpreted by ninja itself, providing better interoperability with custom commands. This support may not be perfect; please report any issues found with special characters to the issue tracker. ## Pkgconfig support for custom variables The Pkgconfig module object can add arbitrary variables to the generated .pc file with the new `variables` keyword: ```meson pkg.generate(libraries : libs, subdirs : h, version : '1.0', name : 'libsimple', filebase : 'simple', description : 'A simple demo library.', variables : ['datadir=${prefix}/data']) ``` ## A target for creating tarballs Creating distribution tarballs is simple: ninja dist This will create a `.tar.xz` archive of the source code including submodules without any revision control information. This command also verifies that the resulting archive can be built, tested and installed. This is roughly equivalent to the `distcheck` target in other build systems. Currently this only works for projects using Git and only with the Ninja backend. ## Support for passing arguments to Rust compiler Targets for building rust now take a `rust_args` keyword. ## Code coverage export for tests Code coverage can be generated for tests by passing the `--cov` argument to the `run_tests.py` test runner. Note, since multiple processes are used, coverage must be combined before producing a report (`coverage3 combine`.) ## Reproducible builds All known issues have been fixed and Meson can now build reproducible Debian packages out of the box. ## Extended template substitution in configure_file The output argument of `configure_file()` is parsed for @BASENAME@ and @PLAINNAME@ substitutions.