Updated version number for new release.
This commit is contained in:
parent
01865899e5
commit
ade59f987f
|
@ -1,23 +1,306 @@
|
||||||
---
|
---
|
||||||
title: Release 0.46
|
title: Release 0.46
|
||||||
short-description: Release notes for 0.46 (preliminary)
|
short-description: Release notes for 0.46
|
||||||
...
|
...
|
||||||
|
|
||||||
# New features
|
# New features
|
||||||
|
|
||||||
This page is a placeholder for the eventual release notes.
|
|
||||||
|
|
||||||
Notable new features should come with release note updates. This is
|
|
||||||
done by creating a file snippet called `snippets/featurename.md` and
|
|
||||||
whose contents should look like this:
|
|
||||||
|
|
||||||
## Feature name
|
|
||||||
|
|
||||||
A short description explaining the new feature and how it should be used.
|
|
||||||
|
|
||||||
## Allow early return from a script
|
## Allow early return from a script
|
||||||
|
|
||||||
Added the function `subdir_done()`. Its invocation exits the current script at
|
Added the function `subdir_done()`. Its invocation exits the current script at
|
||||||
the point of invocation. All previously invoked build targets and commands are
|
the point of invocation. All previously invoked build targets and commands are
|
||||||
build/executed. All following ones are ignored. If the current script was
|
build/executed. All following ones are ignored. If the current script was
|
||||||
invoked via `subdir()` the parent script continues normally.
|
invoked via `subdir()` the parent script continues normally.
|
||||||
|
## Log output slightly changed
|
||||||
|
|
||||||
|
The format of some human-readable diagnostic messages has changed in
|
||||||
|
minor ways. In case you are parsing these messages, you may need to
|
||||||
|
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.
|
||||||
|
|
||||||
|
```
|
||||||
|
[properties]
|
||||||
|
c_args = ['--cpu=Cortex-M0plus']
|
||||||
|
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` 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:
|
||||||
|
|
||||||
|
cc = meson.get_compiler('c')
|
||||||
|
result = run_command(cc, '-print-file-name=plugin')
|
||||||
|
plugin_dev_path = result.stdout().strip()
|
||||||
|
|
||||||
|
## declare_dependency() supports link_whole
|
||||||
|
|
||||||
|
`declare_dependency()` supports `link_whole` parameter.
|
||||||
|
`link_whole` propagates to build target that uses dependency.
|
||||||
|
|
||||||
|
## Old command names are now errors
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
## Recursively extract objects
|
||||||
|
|
||||||
|
`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
|
||||||
|
lib1 = static_library('a', 'source.c', objects : 'prebuilt.o')
|
||||||
|
lib2 = static_library('b', objects : lib1.extract_all_objects(recursive : true))
|
||||||
|
```
|
||||||
|
|
||||||
|
## Can override find_program
|
||||||
|
|
||||||
|
It is now possible to override the result of `find_program` to point
|
||||||
|
to a custom program you want. The overriding is global and applies to
|
||||||
|
every subproject from there on. Here is how you would use it.
|
||||||
|
|
||||||
|
In master project
|
||||||
|
|
||||||
|
```meson
|
||||||
|
subproject('mydep')
|
||||||
|
```
|
||||||
|
|
||||||
|
In the called subproject:
|
||||||
|
|
||||||
|
```meson
|
||||||
|
prog = find_program('my_custom_script')
|
||||||
|
meson.override_find_program('mycodegen', prog)
|
||||||
|
```
|
||||||
|
|
||||||
|
In master project (or, in fact, any subproject):
|
||||||
|
|
||||||
|
```meson
|
||||||
|
genprog = find_program('mycodegen')
|
||||||
|
```
|
||||||
|
|
||||||
|
Now `genprog` points to the custom script. If the dependency had come
|
||||||
|
from the system, then it would point to the system version.
|
||||||
|
|
||||||
|
You can also use the return value of `configure_file()` to override
|
||||||
|
a program in the same way as above:
|
||||||
|
|
||||||
|
```meson
|
||||||
|
prog_script = configure_file(input : 'script.sh.in',
|
||||||
|
output : 'script.sh',
|
||||||
|
configuration : cdata)
|
||||||
|
meson.override_find_program('mycodegen', prog_script)
|
||||||
|
```
|
||||||
|
|
||||||
|
## has_link_argument() and friends
|
||||||
|
|
||||||
|
A new set of methods has been added on compiler objects to test if the linker
|
||||||
|
supports given arguments.
|
||||||
|
|
||||||
|
- `has_link_argument()`
|
||||||
|
- `has_multi_link_arguments()`
|
||||||
|
- `get_supported_link_arguments()`
|
||||||
|
- `first_supported_link_argument()`
|
||||||
|
|
||||||
|
## "meson help" now shows command line help
|
||||||
|
|
||||||
|
Command line parsing is now less surprising. "meson help" is now
|
||||||
|
equivalent to "meson --help" and "meson help <subcommand>" is
|
||||||
|
equivalent to "meson <subcommand> --help", instead of creating a build
|
||||||
|
directory called "help" in these cases.
|
||||||
|
|
||||||
|
## Autogeneration of simple meson.build files
|
||||||
|
|
||||||
|
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
|
||||||
|
flag and automatically invoke a build with the -b flag to check if the
|
||||||
|
code builds with those dependencies.
|
||||||
|
|
||||||
|
For example,
|
||||||
|
|
||||||
|
```meson
|
||||||
|
meson init -fbd sdl2,gl
|
||||||
|
```
|
||||||
|
|
||||||
|
will look for C or C++ files in the current directory, generate a
|
||||||
|
meson.build for them with the dependencies of sdl2 and gl and
|
||||||
|
immediately try to build it, overwriting any previous meson.build and
|
||||||
|
build directory.
|
||||||
|
|
||||||
|
## install_data() supports rename
|
||||||
|
|
||||||
|
`rename` parameter is used to change names of the installed files.
|
||||||
|
In order to install
|
||||||
|
- `file1.txt` into `share/myapp/dir1/data.txt`
|
||||||
|
- `file2.txt` into `share/myapp/dir2/data.txt`
|
||||||
|
```meson
|
||||||
|
install_data(['file1.txt', 'file2.txt'],
|
||||||
|
rename : ['dir1/data.txt', 'dir2/data.txt'],
|
||||||
|
install_dir : 'share/myapp')
|
||||||
|
```
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
Examples of such CPUs:
|
||||||
|
* [Elbrus-8S](https://en.wikipedia.org/wiki/Elbrus-8S);
|
||||||
|
* Elbrus-4S;
|
||||||
|
* [Elbrus-2S+](https://en.wikipedia.org/wiki/Elbrus-2S%2B).
|
||||||
|
|
||||||
|
Such compiler have a similar behavior as gcc (basic option compatibility),
|
||||||
|
but, in is not strictly compatible with gcc as of current version.
|
||||||
|
|
||||||
|
Major differences as of version 1.21.22:
|
||||||
|
* it does not support LTO and PCH;
|
||||||
|
* it suffers from the same dependency file creation error as icc;
|
||||||
|
* it has minor differences in output, especially version output;
|
||||||
|
* it differently reacts to lchmod() detection;
|
||||||
|
* some backend messages are produced in ru_RU.KOI8-R even if LANG=C;
|
||||||
|
* its preprocessor treats some characters differently.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
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.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
```meson
|
||||||
|
|
||||||
|
dep = dependency('xcb')
|
||||||
|
|
||||||
|
helper = static_library(
|
||||||
|
'helper',
|
||||||
|
['helper1.c', 'helper2.c'],
|
||||||
|
dependencies : dep.partial_dependency(includes : true),
|
||||||
|
]
|
||||||
|
|
||||||
|
final = shared_library(
|
||||||
|
'final',
|
||||||
|
['final.c'],
|
||||||
|
dependencyes : dep,
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
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`.
|
||||||
|
|
||||||
|
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` to the pkg config file generator or use
|
||||||
|
configure_file for more complicated setups.
|
||||||
|
|
||||||
|
## Improvements to pkgconfig module
|
||||||
|
|
||||||
|
A `StaticLibrary` or `SharedLibrary` object can optionally be passed
|
||||||
|
as first positional argument of the `generate()` method. If one is provided a
|
||||||
|
default value will be provided for all required fields of the pc file:
|
||||||
|
- `install_dir` is set to `pkgconfig` folder in the same location than the provided library.
|
||||||
|
- `description` is set to the project's name followed by the library's name.
|
||||||
|
- `name` is set to the library's name.
|
||||||
|
|
||||||
|
Generating a .pc file is now as simple as:
|
||||||
|
|
||||||
|
```
|
||||||
|
pkgconfig.generate(mylib)
|
||||||
|
```
|
||||||
|
|
||||||
|
## pkgconfig.generate() requires parameters non-string arguments
|
||||||
|
|
||||||
|
`pkgconfig.generate()` `requires` and `requires_private` parameters
|
||||||
|
accept pkgconfig-dependencies and libraries that pkgconfig-files were
|
||||||
|
generated for.
|
||||||
|
|
||||||
|
## Generic python module
|
||||||
|
|
||||||
|
This is a revamped and generic (python 2 and 3) version of the python3
|
||||||
|
module. With this new interface, 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 depends keyword parameter
|
||||||
|
|
||||||
|
Build targets and custom targets can be listed in depends argument of test
|
||||||
|
function. These targets will be built before test is run even if they have
|
||||||
|
`build_by_default : false`.
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
---
|
||||||
|
title: Release 0.47
|
||||||
|
short-description: Release notes for 0.46 (preliminary)
|
||||||
|
...
|
||||||
|
|
||||||
|
# New features
|
||||||
|
|
||||||
|
This page is a placeholder for the eventual release notes.
|
||||||
|
|
||||||
|
Notable new features should come with release note updates. This is
|
||||||
|
done by creating a file snippet called `snippets/featurename.md` and
|
||||||
|
whose contents should look like this:
|
||||||
|
|
||||||
|
## Feature name
|
||||||
|
|
||||||
|
A short description explaining the new feature and how it should be used.
|
||||||
|
|
||||||
|
## 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.
|
|
@ -1,5 +0,0 @@
|
||||||
## Log output slightly changed
|
|
||||||
|
|
||||||
The format of some human-readable diagnostic messages has changed in
|
|
||||||
minor ways. In case you are parsing these messages, you may need to
|
|
||||||
adjust your code.
|
|
|
@ -1,15 +0,0 @@
|
||||||
## 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.
|
|
||||||
|
|
||||||
```
|
|
||||||
[properties]
|
|
||||||
c_args = ['--cpu=Cortex-M0plus']
|
|
||||||
cpp_args = ['--cpu=Cortex-M0plus']
|
|
||||||
|
|
||||||
```
|
|
|
@ -1,9 +0,0 @@
|
||||||
## 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` argument are set to false in which case
|
|
||||||
sources will be compiled twice.
|
|
||||||
|
|
||||||
The returned `buildtarget` object always represents the shared library.
|
|
|
@ -1,10 +0,0 @@
|
||||||
## 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:
|
|
||||||
|
|
||||||
cc = meson.get_compiler('c')
|
|
||||||
result = run_command(cc, '-print-file-name=plugin')
|
|
||||||
plugin_dev_path = result.stdout().strip()
|
|
|
@ -1,6 +0,0 @@
|
||||||
## 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.
|
|
|
@ -1,4 +0,0 @@
|
||||||
## declare_dependency() supports link_whole
|
|
||||||
|
|
||||||
`declare_dependency()` supports `link_whole` parameter.
|
|
||||||
`link_whole` propagates to build target that uses dependency.
|
|
|
@ -1,7 +0,0 @@
|
||||||
## Old command names are now errors
|
|
||||||
|
|
||||||
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.
|
|
|
@ -1,12 +0,0 @@
|
||||||
## Recursively extract objects
|
|
||||||
|
|
||||||
`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
|
|
||||||
lib1 = static_library('a', 'source.c', objects : 'prebuilt.o')
|
|
||||||
lib2 = static_library('b', objects : lib1.extract_all_objects(recursive : true))
|
|
||||||
```
|
|
|
@ -1,37 +0,0 @@
|
||||||
## Can override find_program
|
|
||||||
|
|
||||||
It is now possible to override the result of `find_program` to point
|
|
||||||
to a custom program you want. The overriding is global and applies to
|
|
||||||
every subproject from there on. Here is how you would use it.
|
|
||||||
|
|
||||||
In master project
|
|
||||||
|
|
||||||
```meson
|
|
||||||
subproject('mydep')
|
|
||||||
```
|
|
||||||
|
|
||||||
In the called subproject:
|
|
||||||
|
|
||||||
```meson
|
|
||||||
prog = find_program('my_custom_script')
|
|
||||||
meson.override_find_program('mycodegen', prog)
|
|
||||||
```
|
|
||||||
|
|
||||||
In master project (or, in fact, any subproject):
|
|
||||||
|
|
||||||
```meson
|
|
||||||
genprog = find_program('mycodegen')
|
|
||||||
```
|
|
||||||
|
|
||||||
Now `genprog` points to the custom script. If the dependency had come
|
|
||||||
from the system, then it would point to the system version.
|
|
||||||
|
|
||||||
You can also use the return value of `configure_file()` to override
|
|
||||||
a program in the same way as above:
|
|
||||||
|
|
||||||
```meson
|
|
||||||
prog_script = configure_file(input : 'script.sh.in',
|
|
||||||
output : 'script.sh',
|
|
||||||
configuration : cdata)
|
|
||||||
meson.override_find_program('mycodegen', prog_script)
|
|
||||||
```
|
|
|
@ -1,9 +0,0 @@
|
||||||
## has_link_argument() and friends
|
|
||||||
|
|
||||||
A new set of methods has been added on compiler objects to test if the linker
|
|
||||||
supports given arguments.
|
|
||||||
|
|
||||||
- `has_link_argument()`
|
|
||||||
- `has_multi_link_arguments()`
|
|
||||||
- `get_supported_link_arguments()`
|
|
||||||
- `first_supported_link_argument()`
|
|
|
@ -1,6 +0,0 @@
|
||||||
## "meson help" now shows command line help
|
|
||||||
|
|
||||||
Command line parsing is now less surprising. "meson help" is now
|
|
||||||
equivalent to "meson --help" and "meson help <subcommand>" is
|
|
||||||
equivalent to "meson <subcommand> --help", instead of creating a build
|
|
||||||
directory called "help" in these cases.
|
|
|
@ -1,19 +0,0 @@
|
||||||
## Autogeneration of simple meson.build files
|
|
||||||
|
|
||||||
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
|
|
||||||
flag and automatically invoke a build with the -b flag to check if the
|
|
||||||
code builds with those dependencies.
|
|
||||||
|
|
||||||
For example,
|
|
||||||
|
|
||||||
```meson
|
|
||||||
meson init -fbd sdl2,gl
|
|
||||||
```
|
|
||||||
|
|
||||||
will look for C or C++ files in the current directory, generate a
|
|
||||||
meson.build for them with the dependencies of sdl2 and gl and
|
|
||||||
immediately try to build it, overwriting any previous meson.build and
|
|
||||||
build directory.
|
|
|
@ -1,11 +0,0 @@
|
||||||
## install_data() supports rename
|
|
||||||
|
|
||||||
`rename` parameter is used to change names of the installed files.
|
|
||||||
In order to install
|
|
||||||
- `file1.txt` into `share/myapp/dir1/data.txt`
|
|
||||||
- `file2.txt` into `share/myapp/dir2/data.txt`
|
|
||||||
```meson
|
|
||||||
install_data(['file1.txt', 'file2.txt'],
|
|
||||||
rename : ['dir1/data.txt', 'dir2/data.txt'],
|
|
||||||
install_dir : 'share/myapp')
|
|
||||||
```
|
|
|
@ -1,23 +0,0 @@
|
||||||
## 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.
|
|
||||||
|
|
||||||
Examples of such CPUs:
|
|
||||||
* [Elbrus-8S](https://en.wikipedia.org/wiki/Elbrus-8S);
|
|
||||||
* Elbrus-4S;
|
|
||||||
* [Elbrus-2S+](https://en.wikipedia.org/wiki/Elbrus-2S%2B).
|
|
||||||
|
|
||||||
Such compiler have a similar behavior as gcc (basic option compatibility),
|
|
||||||
but, in is not strictly compatible with gcc as of current version.
|
|
||||||
|
|
||||||
Major differences as of version 1.21.22:
|
|
||||||
* it does not support LTO and PCH;
|
|
||||||
* it suffers from the same dependency file creation error as icc;
|
|
||||||
* it has minor differences in output, especially version output;
|
|
||||||
* it differently reacts to lchmod() detection;
|
|
||||||
* some backend messages are produced in ru_RU.KOI8-R even if LANG=C;
|
|
||||||
* its preprocessor treats some characters differently.
|
|
||||||
|
|
||||||
So every noted difference is properly handled now in meson.
|
|
|
@ -1,15 +0,0 @@
|
||||||
## 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.
|
|
||||||
|
|
||||||
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.
|
|
|
@ -1,3 +0,0 @@
|
||||||
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.
|
|
|
@ -1,9 +0,0 @@
|
||||||
## 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.
|
|
||||||
|
|
||||||
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.
|
|
|
@ -1,6 +0,0 @@
|
||||||
## 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.
|
|
|
@ -1,25 +0,0 @@
|
||||||
## 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.
|
|
||||||
|
|
||||||
```meson
|
|
||||||
|
|
||||||
dep = dependency('xcb')
|
|
||||||
|
|
||||||
helper = static_library(
|
|
||||||
'helper',
|
|
||||||
['helper1.c', 'helper2.c'],
|
|
||||||
dependencies : dep.partial_dependency(includes : true),
|
|
||||||
]
|
|
||||||
|
|
||||||
final = shared_library(
|
|
||||||
'final',
|
|
||||||
['final.c'],
|
|
||||||
dependencyes : dep,
|
|
||||||
)
|
|
||||||
```
|
|
||||||
|
|
||||||
A partial dependency will have the same name version as the full dependency it
|
|
||||||
is derived from, as well as any values requested.
|
|
|
@ -1,12 +0,0 @@
|
||||||
## 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`.
|
|
||||||
|
|
||||||
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` to the pkg config file generator or use
|
|
||||||
configure_file for more complicated setups.
|
|
|
@ -1,14 +0,0 @@
|
||||||
## Improvements to pkgconfig module
|
|
||||||
|
|
||||||
A `StaticLibrary` or `SharedLibrary` object can optionally be passed
|
|
||||||
as first positional argument of the `generate()` method. If one is provided a
|
|
||||||
default value will be provided for all required fields of the pc file:
|
|
||||||
- `install_dir` is set to `pkgconfig` folder in the same location than the provided library.
|
|
||||||
- `description` is set to the project's name followed by the library's name.
|
|
||||||
- `name` is set to the library's name.
|
|
||||||
|
|
||||||
Generating a .pc file is now as simple as:
|
|
||||||
|
|
||||||
```
|
|
||||||
pkgconfig.generate(mylib)
|
|
||||||
```
|
|
|
@ -1,5 +0,0 @@
|
||||||
## pkgconfig.generate() requires parameters non-string arguments
|
|
||||||
|
|
||||||
`pkgconfig.generate()` `requires` and `requires_private` parameters
|
|
||||||
accept pkgconfig-dependencies and libraries that pkgconfig-files were
|
|
||||||
generated for.
|
|
|
@ -1,6 +0,0 @@
|
||||||
## Generic python module
|
|
||||||
|
|
||||||
This is a revamped and generic (python 2 and 3) version of the python3
|
|
||||||
module. With this new interface, 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.
|
|
|
@ -1,5 +0,0 @@
|
||||||
## test now supports depends keyword parameter
|
|
||||||
|
|
||||||
Build targets and custom targets can be listed in depends argument of test
|
|
||||||
function. These targets will be built before test is run even if they have
|
|
||||||
`build_by_default : false`.
|
|
|
@ -66,6 +66,7 @@ index.md
|
||||||
Shipping-prebuilt-binaries-as-wraps.md
|
Shipping-prebuilt-binaries-as-wraps.md
|
||||||
fallback-wraptool.md
|
fallback-wraptool.md
|
||||||
Release-notes.md
|
Release-notes.md
|
||||||
|
Release-notes-for-0.47.0.md
|
||||||
Release-notes-for-0.46.0.md
|
Release-notes-for-0.46.0.md
|
||||||
Release-notes-for-0.45.0.md
|
Release-notes-for-0.45.0.md
|
||||||
Release-notes-for-0.44.0.md
|
Release-notes-for-0.44.0.md
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.TH MESON "1" "March 2018" "meson 0.45.0" "User Commands"
|
.TH MESON "1" "April 2018" "meson 0.46.0" "User Commands"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
meson - a high productivity build system
|
meson - a high productivity build system
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.TH MESONCONF "1" "March 2018" "mesonconf 0.45.0" "User Commands"
|
.TH MESONCONF "1" "April 2018" "mesonconf 0.46.0" "User Commands"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mesonconf - a tool to configure Meson builds
|
mesonconf - a tool to configure Meson builds
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.TH MESONINTROSPECT "1" "March 2017" "mesonintrospect 0.45.0" "User Commands"
|
.TH MESONINTROSPECT "1" "April 2018" "mesonintrospect 0.46.0" "User Commands"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mesonintrospect - a tool to extract information about a Meson build
|
mesonintrospect - a tool to extract information about a Meson build
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.TH MESON "1" "March 2018" "meson 0.45.0" "User Commands"
|
.TH MESON "1" "April 2018" "meson 0.46.0" "User Commands"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
mesontest - test tool for the Meson build system
|
mesontest - test tool for the Meson build system
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.TH WRAPTOOL "1" "March 2018" "meson 0.45.0" "User Commands"
|
.TH WRAPTOOL "1" "April 2018" "meson 0.46.0" "User Commands"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
wraptool - source dependency downloader
|
wraptool - source dependency downloader
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
|
|
|
@ -22,7 +22,7 @@ from .mesonlib import default_libdir, default_libexecdir, default_prefix
|
||||||
import ast
|
import ast
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
version = '0.46.0.dev1'
|
version = '0.46.0'
|
||||||
backendlist = ['ninja', 'vs', 'vs2010', 'vs2015', 'vs2017', 'xcode']
|
backendlist = ['ninja', 'vs', 'vs2010', 'vs2015', 'vs2017', 'xcode']
|
||||||
|
|
||||||
default_yielding = False
|
default_yielding = False
|
||||||
|
|
Loading…
Reference in New Issue