aboutsummaryrefslogtreecommitdiff
path: root/docs/markdown/Release-notes-for-0.46.0.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/markdown/Release-notes-for-0.46.0.md')
-rw-r--r--docs/markdown/Release-notes-for-0.46.0.md183
1 files changed, 98 insertions, 85 deletions
diff --git a/docs/markdown/Release-notes-for-0.46.0.md b/docs/markdown/Release-notes-for-0.46.0.md
index e3b45e9..fd63fd0 100644
--- a/docs/markdown/Release-notes-for-0.46.0.md
+++ b/docs/markdown/Release-notes-for-0.46.0.md
@@ -7,10 +7,11 @@ short-description: Release notes for 0.46
## 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.
## Log output slightly changed
@@ -20,12 +21,12 @@ adjust your code.
## ARM compiler for C and CPP
-Cross-compilation is now supported for ARM targets using ARM compiler - ARMCC.
-The current implementation does not support shareable libraries.
-The default extension of the output is .axf.
-The environment path should be set properly for the ARM compiler executables.
-The '--cpu' option with the appropriate target type should be mentioned
-in the cross file as shown in the snippet below.
+Cross-compilation is now supported for ARM targets using ARM compiler
+- ARMCC. The current implementation does not support shareable
+libraries. The default extension of the output is .axf. The
+environment path should be set properly for the ARM compiler
+executables. The '--cpu' option with the appropriate target type
+should be mentioned in the cross file as shown in the snippet below.
```ini
[properties]
@@ -36,20 +37,20 @@ cpp_args = ['--cpu=Cortex-M0plus']
## Building both shared and static libraries
-A new function `both_libraries()` has been added to build both shared and static
-libraries at the same time. Source files will be compiled only once and object
-files will be reused to build both shared and static libraries, unless
-`b_staticpic` user option or `pic:` keyword argument are set to false in which
-case sources will be compiled twice.
+A new function `both_libraries()` has been added to build both shared
+and static libraries at the same time. Source files will be compiled
+only once and object files will be reused to build both shared and
+static libraries, unless `b_staticpic` user option or `pic:` keyword
+argument are set to false in which case sources will be compiled
+twice.
The returned `buildtarget` object always represents the shared library.
## Compiler object can now be passed to run_command()
-This can be used to run the current compiler with the specified arguments
-to obtain additional information from it.
-One of the use cases is to get the location of development files for the
-GCC plugins:
+This can be used to run the current compiler with the specified
+arguments to obtain additional information from it. One of the use
+cases is to get the location of development files for the GCC plugins:
```meson
cc = meson.get_compiler('c')
@@ -64,25 +65,26 @@ transparently works for build targets which use that dependency.
## Old command names are now errors
-The old executable names `mesonintrospect`, `mesonconf`, `mesonrewriter`
-and `mesontest` have been deprecated for a long time. Starting from
-this version they no longer do anything but instead always error
-out. All functionality is available as subcommands in the main `meson`
-binary.
+The old executable names `mesonintrospect`, `mesonconf`,
+`mesonrewriter` and `mesontest` have been deprecated for a long time.
+Starting from this version they no longer do anything but instead
+always error out. All functionality is available as subcommands in the
+main `meson` binary.
## Meson and meson configure now accept the same arguments
-Previously meson required that builtin arguments (like prefix) be passed as
-`--prefix` to `meson` and `-Dprefix` to `meson configure`. `meson` now accepts -D
-form like `meson configure` has. `meson configure` also accepts the `--prefix`
-form, like `meson` has.
+Previously meson required that builtin arguments (like prefix) be
+passed as `--prefix` to `meson` and `-Dprefix` to `meson configure`.
+`meson` now accepts -D form like `meson configure` has. `meson
+configure` also accepts the `--prefix` form, like `meson` has.
## Recursively extract objects
-The `recursive:` keyword argument has been added to `extract_all_objects()`. When set
-to `true` it will also return objects passed to the `objects:` argument of this
-target. By default only objects built for this target are returned to maintain
-backward compatibility with previous versions. The default will eventually be
+The `recursive:` keyword argument has been added to
+`extract_all_objects()`. When set to `true` it will also return
+objects passed to the `objects:` argument of this target. By default
+only objects built for this target are returned to maintain backward
+compatibility with previous versions. The default will eventually be
changed to `true` in a future version.
```meson
@@ -130,8 +132,9 @@ meson.override_find_program('mycodegen', prog_script)
## New functions: has_link_argument() and friends
-A new set of methods has been added to [compiler objects](Reference-manual.md#compiler-object)
-to test if the linker supports given arguments.
+A new set of methods has been added to [compiler
+objects](Reference-manual.md#compiler-object) to test if the linker
+supports given arguments.
- `has_link_argument()`
- `has_multi_link_arguments()`
@@ -150,9 +153,9 @@ directory called "help" in these cases.
A feature to generate a meson.build file compiling given C/C++ source
files into a single executable has been added to "meson init". By
default, it will take all recognizable source files in the current
-directory. You can also specify a list of dependencies with the -d
+directory. You can also specify a list of dependencies with the -d
flag and automatically invoke a build with the -b flag to check if the
-code builds with those dependencies.
+code builds with those dependencies.
For example,
@@ -182,8 +185,9 @@ install_data(['file1.txt', 'file2.txt'],
## Support for lcc compiler for e2k (Elbrus) architecture
In this version, a support for lcc compiler for Elbrus processors
-based on [e2k microarchitecture](https://en.wikipedia.org/wiki/Elbrus_2000)
-has been added.
+based on [e2k
+microarchitecture](https://en.wikipedia.org/wiki/Elbrus_2000) has been
+added.
Examples of such CPUs:
* [Elbrus-8S](https://en.wikipedia.org/wiki/Elbrus-8S);
@@ -206,47 +210,52 @@ So every noted difference is properly handled now in meson.
## String escape character sequence update
Single-quoted strings in meson have been taught the same set of escape
-sequences as in Python. It is therefore now possible to use arbitrary bytes in
-strings, like for example `NUL` (`\0`) and other ASCII control characters. See
-the chapter about [*Strings* in *Syntax*](Syntax.md#strings) for more
-details.
+sequences as in Python. It is therefore now possible to use arbitrary
+bytes in strings, like for example `NUL` (`\0`) and other ASCII
+control characters. See the chapter about [*Strings* in
+*Syntax*](Syntax.md#strings) for more details.
-Potential backwards compatibility issue: Any valid escape sequence according to
-the new rules will be interpreted as an escape sequence instead of the literal
-characters. Previously only the following escape sequences were supported in
-single-quote strings: `\'`, `\\` and `\n`.
+Potential backwards compatibility issue: Any valid escape sequence
+according to the new rules will be interpreted as an escape sequence
+instead of the literal characters. Previously only the following
+escape sequences were supported in single-quote strings: `\'`, `\\`
+and `\n`.
-Note that the behaviour of triple-quoted (multiline) strings has not changed.
-They behave like raw strings and do not support any escape sequences.
+Note that the behaviour of triple-quoted (multiline) strings has not
+changed. They behave like raw strings and do not support any escape
+sequences.
## New `forcefallback` wrap mode
-A new wrap mode was added, `--wrap-mode=forcefallback`. When this is set,
-dependencies for which a fallback was provided will always use it, even
-if an external dependency exists and satisfies the version requirements.
+A new wrap mode was added, `--wrap-mode=forcefallback`. When this is
+set, dependencies for which a fallback was provided will always use
+it, even if an external dependency exists and satisfies the version
+requirements.
## Relaxing of target name requirements
-In earlier versions of Meson you could only have one target of a given name for each type.
-For example you could not have two executables named `foo`. This requirement is now
-relaxed so that you can have multiple targets with the same name, as long as they are in
-different subdirectories.
+In earlier versions of Meson you could only have one target of a given
+name for each type. For example you could not have two executables
+named `foo`. This requirement is now relaxed so that you can have
+multiple targets with the same name, as long as they are in different
+subdirectories.
-Note that projects that have multiple targets with the same name can not be built with
-the `flat` layout or any backend that writes outputs in the same directory.
+Note that projects that have multiple targets with the same name can
+not be built with the `flat` layout or any backend that writes outputs
+in the same directory.
## Addition of OpenMP dependency
-An OpenMP dependency (`openmp`) has been added that encapsulates the various
-flags used by compilers to enable OpenMP and checks for the existence of the
-`omp.h` header. The `language` keyword may be passed to force the use of a
-specific compiler for the checks.
+An OpenMP dependency (`openmp`) has been added that encapsulates the
+various flags used by compilers to enable OpenMP and checks for the
+existence of the `omp.h` header. The `language` keyword may be passed
+to force the use of a specific compiler for the checks.
## Added new partial_dependency method to dependencies and libraries
-It is now possible to use only part of a dependency in a target. This allows,
-for example, to only use headers with convenience libraries to avoid linking
-to the same library multiple times.
+It is now possible to use only part of a dependency in a target. This
+allows, for example, to only use headers with convenience libraries to
+avoid linking to the same library multiple times.
```meson
dep = dependency('xcb')
@@ -264,22 +273,25 @@ final = shared_library(
)
```
-A partial dependency will have the same name version as the full dependency it
-is derived from, as well as any values requested.
+A partial dependency will have the same name version as the full
+dependency it is derived from, as well as any values requested.
## Improved generation of pkg-config files for static only libraries.
-Previously pkg-config files generated by the pkgconfig modules for static libraries
-with dependencies could only be used in a dependencies with `static: true`.
+Previously pkg-config files generated by the pkgconfig modules for
+static libraries with dependencies could only be used in a
+dependencies with `static: true`.
-Now the generated file contains the needed dependencies libraries directly within
-`Requires` and `Libs` for build static libraries passed via the `libraries` keyword
-argument.
+Now the generated file contains the needed dependencies libraries
+directly within `Requires` and `Libs` for build static libraries
+passed via the `libraries` keyword argument.
-Projects that install both a static and a shared version of a library should use
-the result of [`both_libraries()`](Reference-manual.md#both_libraries) to the
-pkg-config file generator or use [`configure_file()`](Reference-manual.md#configure_file)
-for more complicated setups.
+Projects that install both a static and a shared version of a library
+should use the result of
+[`both_libraries()`](Reference-manual.md#both_libraries) to the
+pkg-config file generator or use
+[`configure_file()`](Reference-manual.md#configure_file) for more
+complicated setups.
## Improvements to pkgconfig module
@@ -298,19 +310,20 @@ pkgconfig.generate(mylib)
## pkgconfig.generate() requires parameters non-string arguments
-`pkgconfig.generate()` `requires:` and `requires_private:` keyword arguments
-now accept pkgconfig-dependencies and libraries that pkgconfig-files were
-generated for.
+`pkgconfig.generate()` `requires:` and `requires_private:` keyword
+arguments now accept pkgconfig-dependencies and libraries that
+pkgconfig-files were generated for.
## Generic python module
-Meson now has is a revamped and generic (python 2 and 3) version of the python3
-module. With [this new interface](Python-module.md), projects can now fully
-specify the version of python they want to build against / install sources to,
-and can do so against multiple major or minor versions in parallel.
+Meson now has is a revamped and generic (python 2 and 3) version of
+the python3 module. With [this new interface](Python-module.md),
+projects can now fully specify the version of python they want to
+build against / install sources to, and can do so against multiple
+major or minor versions in parallel.
## test() now supports the `depends:` keyword argument
-Build targets and custom targets can be listed in the `depends:` keyword argument
-of test function. These targets will be built before test is run even if they have
-`build_by_default : false`.
+Build targets and custom targets can be listed in the `depends:`
+keyword argument of test function. These targets will be built before
+test is run even if they have `build_by_default : false`.