diff options
Diffstat (limited to 'docs/markdown/Release-notes-for-0.46.0.md')
-rw-r--r-- | docs/markdown/Release-notes-for-0.46.0.md | 183 |
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`. |