aboutsummaryrefslogtreecommitdiffstats
path: root/meson/docs/markdown/Release-notes-for-0.38.0.md
diff options
context:
space:
mode:
Diffstat (limited to 'meson/docs/markdown/Release-notes-for-0.38.0.md')
-rw-r--r--meson/docs/markdown/Release-notes-for-0.38.0.md123
1 files changed, 123 insertions, 0 deletions
diff --git a/meson/docs/markdown/Release-notes-for-0.38.0.md b/meson/docs/markdown/Release-notes-for-0.38.0.md
new file mode 100644
index 000000000..152308d0e
--- /dev/null
+++ b/meson/docs/markdown/Release-notes-for-0.38.0.md
@@ -0,0 +1,123 @@
+---
+title: Release 0.38
+short-description: Release notes for 0.38
+...
+
+## Uninstall target
+
+Meson allows you to uninstall an install step by invoking the
+uninstall target. This will remove all files installed as part of
+install. Note that this does not restore the original files. This also
+does not undo changes done by custom install scripts (because they can
+do arbitrary install operations).
+
+## Support for arbitrary test setups
+
+Sometimes you need to run unit tests with special settings. For
+example under Valgrind. Usually this requires extra command line
+options for the tool. This is supported with the new *test setup*
+feature. For example to set up a test run with Valgrind, you'd write
+this in a `meson.build` file:
+
+```meson
+add_test_setup('valgrind',
+ exe_wrapper : [vg, '--error-exitcode=1', '--leak-check=full'],
+ timeout_multiplier : 100)
+```
+
+This tells Meson to run tests with Valgrind using the given options
+and multiplying the test timeout values by 100. To run this test setup
+simply issue the following command:
+
+```console
+$ mesontest --setup=valgrind
+```
+
+## Intel C/C++ compiler support
+
+As usual, just set `CC=icc CXX=icpc` and Meson will use it as the
+C/C++ compiler. Currently only Linux is supported.
+
+## Get values from configuration data objects
+
+Now it is possible to query values stored in configuration data
+objects.
+
+```meson
+cdata.set('key', 'value')
+cdata.get('key') # returns 'value'
+cdata.get('nokey', 'default') # returns 'default'
+cdata.get('nokey') # halts with an error
+```
+
+## Python 3 module support
+
+Building Python 3 extension modules has always been possible, but it
+is now even easier:
+
+```meson
+py3_mod = import('python3')
+pylib = py3_mod.extension_module('modname',
+ 'modsource.c',
+ dependencies : py3_dep)
+```
+
+## Default options to subprojects
+
+Projects can specify overriding values for subprojects'
+`default_options` when invoking a subproject:
+
+```meson
+subproject('foo', default_options : ['optname=overridevalue'])
+dependency('some-dep', fallback : ['some_subproject', 'some_dep'], default_options : ['optname=overridevalue'])
+```
+
+The effect is the same as if the default options were written in the
+subproject's `project` call.
+
+## Set targets to be built (or not) by default
+
+Build targets got a new keyword `build_by_default` which tells whether
+the target should be built by default when running e.g. `ninja`.
+Custom targets are not built by default but other targets are. Any
+target that is tagged as installed or to be built always is also built
+by default, regardless of the value of this keyword.
+
+## Add option to mesonconf to wipe cached data.
+
+Meson caches the results of dependency lookups. Sometimes these may
+get out of sync with the system state. Mesonconf now has a
+`--clearcache` option to clear these values so they will be
+re-searched from the system upon next compile.
+
+## Can specify file permissions and owner when installing data
+
+The new `install_mode` keyword argument can be used to specify file
+permissions and uid/gid of files when doing the install. This allows
+you to, for example, install suid root scripts.
+
+## `has_header()` checks are now faster
+
+When using compilers that implement the [`__has_include()`
+preprocessor
+macro](https://clang.llvm.org/docs/LanguageExtensions.html#include-file-checking-macros),
+the check is now ~40% faster.
+
+## Array indexing now supports fallback values
+
+The second argument to the array
+[`.get()`](Reference-manual.md#array-object) function is now returned
+if the specified index could not be found
+
+```meson
+array = [10, 11, 12, 13]
+array.get(0) # this will return `10`
+array.get(4) # this will give an error about invalid index
+array.get(4, 0) # this will return `0`
+```
+
+## Silent mode for Mesontest
+
+The Meson test executor got a new argument `-q` (and `--quiet`) that
+suppresses all output of successful tests. This makes interactive
+usage nicer because only errors are printed.