aboutsummaryrefslogtreecommitdiff
path: root/docs/markdown/Release-notes-for-0.47.0.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/markdown/Release-notes-for-0.47.0.md')
-rw-r--r--docs/markdown/Release-notes-for-0.47.0.md213
1 files changed, 112 insertions, 101 deletions
diff --git a/docs/markdown/Release-notes-for-0.47.0.md b/docs/markdown/Release-notes-for-0.47.0.md
index 9093035..df230dd 100644
--- a/docs/markdown/Release-notes-for-0.47.0.md
+++ b/docs/markdown/Release-notes-for-0.47.0.md
@@ -7,32 +7,34 @@ short-description: Release notes for 0.47
## Allow early return from a script
-Added the function `subdir_done()`. Its invocation exits the current script at
-the point of invocation. All previously invoked build targets and commands are
-build/executed. All following ones are ignored. If the current script was
-invoked via `subdir()` the parent script continues normally.
+Added the function `subdir_done()`. Its invocation exits the current
+script at the point of invocation. All previously invoked build
+targets and commands are build/executed. All following ones are
+ignored. If the current script was invoked via `subdir()` the parent
+script continues normally.
## Concatenate string literals returned from `get_define()`
-After obtaining the value of a preprocessor symbol consecutive string literals
-are merged into a single string literal.
-For example a preprocessor symbol's value `"ab" "cd"` is returned as `"abcd"`.
+After obtaining the value of a preprocessor symbol consecutive string
+literals are merged into a single string literal. For example a
+preprocessor symbol's value `"ab" "cd"` is returned as `"abcd"`.
## ARM compiler(version 6) for C and CPP
Cross-compilation is now supported for ARM targets using ARM compiler
-version 6 - ARMCLANG. The required ARMCLANG compiler options for
+version 6 - ARMCLANG. The required ARMCLANG compiler options for
building a shareable library are not included in the current Meson
implementation for ARMCLANG support, so it can not build shareable
-libraries. This current Meson implementation for ARMCLANG support can
-not build assembly files with arm syntax (we need to use armasm instead
-of ARMCLANG for the `.s` files with this syntax) and only supports GNU
-syntax.
+libraries. This current Meson implementation for ARMCLANG support can
+not build assembly files with arm syntax (we need to use armasm
+instead of ARMCLANG for the `.s` files with this syntax) and only
+supports GNU syntax.
-The default extension of the executable output is `.axf`.
-The environment path should be set properly for the ARM compiler executables.
-The `--target`, `-mcpu` options with the appropriate values should be mentioned
-in the cross file as shown in the snippet below.
+The default extension of the executable output is `.axf`. The
+environment path should be set properly for the ARM compiler
+executables. The `--target`, `-mcpu` options with the appropriate
+values should be mentioned in the cross file as shown in the snippet
+below.
```ini
[properties]
@@ -48,61 +50,63 @@ Note:
## New base build option for LLVM (Apple) bitcode support
-When building with clang on macOS, you can now build your static and shared
-binaries with embedded bitcode by enabling the `b_bitcode` [base
-option](Builtin-options.md#base-options) by passing `-Db_bitcode=true` to
-Meson.
+When building with clang on macOS, you can now build your static and
+shared binaries with embedded bitcode by enabling the `b_bitcode`
+[base option](Builtin-options.md#base-options) by passing
+`-Db_bitcode=true` to Meson.
-This is better than passing the options manually in the environment since Meson
-will automatically disable conflicting options such as `b_asneeded`, and will
-disable bitcode support on targets that don't support it such as
-`shared_module()`.
+This is better than passing the options manually in the environment
+since Meson will automatically disable conflicting options such as
+`b_asneeded`, and will disable bitcode support on targets that don't
+support it such as `shared_module()`.
-Since this requires support in the linker, it is currently only enabled when
-using Apple ld. In the future it can be extended to clang on other platforms
-too.
+Since this requires support in the linker, it is currently only
+enabled when using Apple ld. In the future it can be extended to clang
+on other platforms too.
## New compiler check: `check_header()`
-The existing compiler check `has_header()` only checks if the header exists,
-either with the `__has_include` C++11 builtin, or by running the pre-processor.
+The existing compiler check `has_header()` only checks if the header
+exists, either with the `__has_include` C++11 builtin, or by running
+the pre-processor.
-However, sometimes the header you are looking for is unusable on some platforms
-or with some compilers in a way that is only detectable at compile-time. For
-such cases, you should use `check_header()` which will include the header and
-run a full compile.
+However, sometimes the header you are looking for is unusable on some
+platforms or with some compilers in a way that is only detectable at
+compile-time. For such cases, you should use `check_header()` which
+will include the header and run a full compile.
-Note that `has_header()` is much faster than `check_header()`, so it should be
-used whenever possible.
+Note that `has_header()` is much faster than `check_header()`, so it
+should be used whenever possible.
## New action `copy:` for `configure_file()`
In addition to the existing actions `configuration:` and `command:`,
-[`configure_file()`](Reference-manual.md#configure_file) now accepts a keyword
-argument `copy:` which specifies a new action to copy the file specified with
-the `input:` keyword argument to a file in the build directory with the name
-specified with the `output:` keyword argument.
+[`configure_file()`](Reference-manual.md#configure_file) now accepts a
+keyword argument `copy:` which specifies a new action to copy the file
+specified with the `input:` keyword argument to a file in the build
+directory with the name specified with the `output:` keyword argument.
-These three keyword arguments are, as before, mutually exclusive. You can only
-do one action at a time.
+These three keyword arguments are, as before, mutually exclusive. You
+can only do one action at a time.
## New keyword argument `encoding:` for `configure_file()`
-Add a new keyword to [`configure_file()`](Reference-manual.md#configure_file)
-that allows the developer to specify the input and output file encoding. The
+Add a new keyword to
+[`configure_file()`](Reference-manual.md#configure_file) that allows
+the developer to specify the input and output file encoding. The
default value is the same as before: UTF-8.
-In the past, Meson would not handle non-UTF-8/ASCII files correctly, and in the
-worst case would try to coerce it to UTF-8 and mangle the data. UTF-8 is the
-standard encoding now, but sometimes it is necessary to process files that use
-a different encoding.
+In the past, Meson would not handle non-UTF-8/ASCII files correctly,
+and in the worst case would try to coerce it to UTF-8 and mangle the
+data. UTF-8 is the standard encoding now, but sometimes it is
+necessary to process files that use a different encoding.
For additional details see [#3135](https://github.com/mesonbuild/meson/pull/3135).
## New keyword argument `output_format:` for `configure_file()`
-When called without an input file, `configure_file` generates a
-C header file by default. A keyword argument was added to allow
+When called without an input file, `configure_file` generates a C
+header file by default. A keyword argument was added to allow
specifying the output format, for example for use with nasm or yasm:
```meson
@@ -121,23 +125,24 @@ and `@PLAINNAME@` substitutions.
## Deprecated `build_always:` for custom targets
-Setting `build_always` to `true` for a custom target not only marks the target
-to be always considered out of date, but also adds it to the set of default
-targets. This option is therefore deprecated and the new option
-`build_always_stale` is introduced.
+Setting `build_always` to `true` for a custom target not only marks
+the target to be always considered out of date, but also adds it to
+the set of default targets. This option is therefore deprecated and
+the new option `build_always_stale` is introduced.
-`build_always_stale` *only* marks the target to be always considered out of
-date, but does not add it to the set of default targets. The old behaviour can
-be achieved by combining `build_always_stale` with `build_by_default`.
+`build_always_stale` *only* marks the target to be always considered
+out of date, but does not add it to the set of default targets. The
+old behaviour can be achieved by combining `build_always_stale` with
+`build_by_default`.
The documentation has been updated accordingly.
## New built-in object type: dictionary
-Meson dictionaries use a syntax similar to python's dictionaries,
-but have a narrower scope: they are immutable, keys can only
-be string literals, and initializing a dictionary with duplicate
-keys causes a fatal error.
+Meson dictionaries use a syntax similar to python's dictionaries, but
+have a narrower scope: they are immutable, keys can only be string
+literals, and initializing a dictionary with duplicate keys causes a
+fatal error.
Example usage:
@@ -154,15 +159,16 @@ endforeach
## Array options treat `-Dopt=` and `-Dopt=[]` as equivalent
-Prior to this change passing -Dopt= to an array opt would be interpreted as
-`['']` (an array with an empty string), now `-Dopt=` is the same as `-Dopt=[]`, an
-empty list.
+Prior to this change passing -Dopt= to an array opt would be
+interpreted as `['']` (an array with an empty string), now `-Dopt=` is
+the same as `-Dopt=[]`, an empty list.
## Feature detection based on `meson_version:` in `project()`
-Meson will now print a `WARNING:` message during configuration if you use
-a function or a keyword argument that was added in a meson version that's newer
-than the version specified inside `project()`. For example:
+Meson will now print a `WARNING:` message during configuration if you
+use a function or a keyword argument that was added in a meson version
+that's newer than the version specified inside `project()`. For
+example:
```meson
project('featurenew', meson_version: '>=0.43')
@@ -193,23 +199,24 @@ WARNING: Project specifies a minimum meson_version '>=0.43' which conflicts with
## New type of build option for features
-A new type of [option called `feature`](Build-options.md#features) can be
-defined in `meson_options.txt` for the traditional `enabled / disabled / auto`
-tristate. The value of this option can be passed to the `required` keyword
-argument of functions `dependency()`, `find_library()`, `find_program()` and
-`add_languages()`.
+A new type of [option called `feature`](Build-options.md#features) can
+be defined in `meson_options.txt` for the traditional `enabled /
+disabled / auto` tristate. The value of this option can be passed to
+the `required` keyword argument of functions `dependency()`,
+`find_library()`, `find_program()` and `add_languages()`.
-A new global option `auto_features` has been added to override the value of all
-`auto` features. It is intended to be used by packagers to have full control on
-which feature must be enabled or disabled.
+A new global option `auto_features` has been added to override the
+value of all `auto` features. It is intended to be used by packagers
+to have full control on which feature must be enabled or disabled.
## New options to `gnome.gdbus_codegen()`
-You can now pass additional arguments to gdbus-codegen using the `extra_args`
-keyword. This is the same for the other gnome function calls.
+You can now pass additional arguments to gdbus-codegen using the
+`extra_args` keyword. This is the same for the other gnome function
+calls.
-Meson now automatically adds autocleanup support to the generated code. This
-can be modified by setting the autocleanup keyword.
+Meson now automatically adds autocleanup support to the generated
+code. This can be modified by setting the autocleanup keyword.
For example:
@@ -235,18 +242,20 @@ $ meson install --only-changed
## `install_mode:` keyword argument extended to all installable targets
-It is now possible to pass an `install_mode` argument to all installable targets,
-such as `executable()`, libraries, headers, man pages and custom/generated
-targets.
+It is now possible to pass an `install_mode` argument to all
+installable targets, such as `executable()`, libraries, headers, man
+pages and custom/generated targets.
-The `install_mode` argument can be used to specify the file mode in symbolic
-format and optionally the owner/uid and group/gid for the installed files.
+The `install_mode` argument can be used to specify the file mode in
+symbolic format and optionally the owner/uid and group/gid for the
+installed files.
## New built-in option `install_umask` with a default value 022
-This umask is used to define the default permissions of files and directories
-created in the install tree. Files will preserve their executable mode, but the
-exact permissions will obey the `install_umask`.
+This umask is used to define the default permissions of files and
+directories created in the install tree. Files will preserve their
+executable mode, but the exact permissions will obey the
+`install_umask`.
The `install_umask` can be overridden in the meson command-line:
@@ -261,8 +270,8 @@ project('myproject', 'c',
default_options : ['install_umask=027'])
```
-To disable the `install_umask`, set it to `preserve`, in which case permissions
-are copied from the files in their origin.
+To disable the `install_umask`, set it to `preserve`, in which case
+permissions are copied from the files in their origin.
## Octal and binary string literals
@@ -275,27 +284,29 @@ int_1365 = 0b10101010101
## New keyword arguments: 'check' and 'capture' for `run_command()`
-If `check:` is `true`, then the configuration will fail if the command returns a
-non-zero exit status. The default value is `false` for compatibility reasons.
+If `check:` is `true`, then the configuration will fail if the command
+returns a non-zero exit status. The default value is `false` for
+compatibility reasons.
-`run_command()` used to always capture the output and stored it for use in
-build files. However, sometimes the stdout is in a binary format which is meant
-to be discarded. For that case, you can now set the `capture:` keyword argument
-to `false`.
+`run_command()` used to always capture the output and stored it for
+use in build files. However, sometimes the stdout is in a binary
+format which is meant to be discarded. For that case, you can now set
+the `capture:` keyword argument to `false`.
## Windows resource files dependencies
The `compile_resources()` function of the `windows` module now takes
the `depend_files:` and `depends:` keywords.
-When using binutils's `windres`, dependencies on files `#include`'d by the
-preprocessor are now automatically tracked.
+When using binutils's `windres`, dependencies on files `#include`'d by
+the preprocessor are now automatically tracked.
## Polkit support for privileged installation
-When running `install`, if installation fails with a permission error and
-`pkexec` is available, Meson will attempt to use it to spawn a permission
-dialog for privileged installation and retry the installation.
+When running `install`, if installation fails with a permission error
+and `pkexec` is available, Meson will attempt to use it to spawn a
+permission dialog for privileged installation and retry the
+installation.
-If `pkexec` is not available, the old behaviour is retained and you will need
-to explicitly run the install step with `sudo`.
+If `pkexec` is not available, the old behaviour is retained and you
+will need to explicitly run the install step with `sudo`.