aboutsummaryrefslogtreecommitdiffstats
path: root/meson/docs/markdown/Release-notes-for-0.44.0.md
diff options
context:
space:
mode:
Diffstat (limited to 'meson/docs/markdown/Release-notes-for-0.44.0.md')
-rw-r--r--meson/docs/markdown/Release-notes-for-0.44.0.md154
1 files changed, 154 insertions, 0 deletions
diff --git a/meson/docs/markdown/Release-notes-for-0.44.0.md b/meson/docs/markdown/Release-notes-for-0.44.0.md
new file mode 100644
index 000000000..8e5c09846
--- /dev/null
+++ b/meson/docs/markdown/Release-notes-for-0.44.0.md
@@ -0,0 +1,154 @@
+---
+title: Release 0.44
+short-description: Release notes for 0.44
+...
+
+# New features
+
+## Added warning function
+
+This function prints its argument to the console prefixed by
+"WARNING:" in yellow color. A simple example:
+
+warning('foo is deprecated, please use bar instead')
+
+
+## Adds support for additional Qt5-Module keyword `moc_extra_arguments`
+
+When `moc`-ing sources, the `moc` tool does not know about any
+preprocessor macros. The generated code might not match the input
+files when the linking with the moc input sources happens.
+
+This amendment allows to specify a a list of additional arguments
+passed to the `moc` tool. They are called `moc_extra_arguments`.
+
+
+## Prefix-dependent defaults for sysconfdir, localstatedir and sharedstatedir
+
+These options now default in a way consistent with
+[FHS](http://refspecs.linuxfoundation.org/fhs.shtml) and common usage.
+
+If prefix is `/usr`, default sysconfdir to `/etc`, localstatedir to `/var` and
+sharedstatedir to `/var/lib`.
+
+If prefix is `/usr/local` (the default), default localstatedir to
+`/var/local` and sharedstatedir to `/var/local/lib`.
+
+
+## An array type for user options
+
+Previously to have an option that took more than one value a string
+value would have to be created and split, but validating this was
+difficult. A new array type has been added to the `meson_options.txt`
+for this case. It works like a 'combo', but allows more than one
+option to be passed. The values can optionally be validated against a
+list of valid values. When used on the command line (with -D), values
+are passed as a comma separated list.
+
+```meson
+option('array_opt', type : 'array', choices : ['one', 'two', 'three'], value : ['one'])
+```
+
+These can be overwritten on the command line,
+
+```meson
+meson _build -Darray_opt=two,three
+```
+
+## LLVM dependency supports both dynamic and static linking
+
+The LLVM dependency has been improved to consistently use dynamic
+linking. Previously recent version (>= 3.9) would link dynamically
+while older versions would link statically.
+
+Now LLVM also accepts the `static` keyword to enable statically
+linking to LLVM modules instead of dynamically linking.
+
+
+## Added `if_found` to subdir
+
+Added a new keyword argument to the `subdir` command. It is given a
+list of dependency objects and the function will only recurse in the
+subdirectory if they are all found. Typical usage goes like this.
+
+```meson
+d1 = dependency('foo') # This is found
+d2 = dependency('bar') # This is not found
+
+subdir('somedir', if_found : [d1, d2])
+```
+
+In this case the subdirectory would not be entered since `d2` could
+not be found.
+
+## `get_unquoted()` method for the `configuration` data object
+
+New convenience method that allows reusing a variable value
+defined quoted. Useful in C for config.h strings for example.
+
+
+## Added disabler object
+
+A disabler object is a new kind of object that has very specific
+semantics. If it is used as part of any other operation such as an
+argument to a function call, logical operations etc, it will cause the
+operation to not be evaluated. Instead the return value of said
+operation will also be the disabler object.
+
+For example if you have an setup like this:
+
+```meson
+dep = dependency('foo')
+lib = shared_library('mylib', 'mylib.c',
+ dependencies : dep)
+exe = executable('mytest', 'mytest.c',
+ link_with : lib)
+test('mytest', exe)
+```
+
+If you replace the dependency with a disabler object like this:
+
+```meson
+dep = disabler()
+lib = shared_library('mylib', 'mylib.c',
+ dependencies : dep)
+exe = executable('mytest', 'mytest.c',
+ link_with : lib)
+test('mytest', exe)
+```
+
+Then the shared library, executable and unit test are not
+created. This is a handy mechanism to cut down on the number of `if`
+statements.
+
+
+## Config-Tool based dependencies gained a method to get arbitrary options
+
+A number of dependencies (CUPS, LLVM, pcap, WxWidgets, GnuStep) use a
+config tool instead of pkg-config. As of this version they now have a
+`get_configtool_variable` method, which is analogous to the
+`get_pkgconfig_variable` for pkg config.
+
+```meson
+dep_llvm = dependency('LLVM')
+llvm_inc_dir = dep_llvm.get_configtool_variable('includedir')
+```
+
+## Embedded Python in Windows MSI packages
+
+Meson now ships an internal version of Python in the MSI installer
+packages. This means that it can run Python scripts that are part of
+your build transparently. That is, if you do the following:
+
+```meson
+myprog = find_program('myscript.py')
+```
+
+Then Meson will run the script with its internal Python version if necessary.
+
+## Libwmf dependency now supports libwmf-config
+
+Earlier, `dependency('libwmf')` could only detect the library with
+pkg-config files. Now, if pkg-config files are not found, Meson will
+look for `libwmf-config` and if it's found, will use that to find the
+library.