Prepare new release.
This commit is contained in:
parent
a1d2444e4a
commit
8d576eba91
|
@ -0,0 +1,193 @@
|
|||
---
|
||||
title: Release 0.53.0
|
||||
short-description: Release notes for 0.53.0
|
||||
...
|
||||
|
||||
# New features
|
||||
|
||||
## A new module for filesystem operations
|
||||
|
||||
The new `fs` module can be used to examine the contents of the current
|
||||
file system.
|
||||
|
||||
```meson
|
||||
fs = import('fs')
|
||||
assert(fs.exists('important_file'),
|
||||
'The important file is missing.')
|
||||
```
|
||||
|
||||
## meson dist --include-subprojects
|
||||
|
||||
`meson dist` command line now gained `--include-subprojects` command line option.
|
||||
When enabled, the source tree of all subprojects used by the current build will
|
||||
also be included in the final tarball. This is useful to distribute self contained
|
||||
tarball that can be built offline (i.e. `--wrap-mode=nodownload`).
|
||||
|
||||
## Added new Meson templates for `Dlang`, `Rust`, `Objective-C`
|
||||
|
||||
Meson now ships with predefined project templates for `Dlang`,
|
||||
`Fortran`, `Rust`, `Objective-C`, and by passing the associated flags `d`,
|
||||
`fortran`, `rust`, `objc` to `meson init --language`.
|
||||
|
||||
## Add a new summary() function
|
||||
|
||||
A new function [`summary()`](Reference-manual.md#summary) has been added to
|
||||
summarize build configuration at the end of the build process.
|
||||
|
||||
Example:
|
||||
```meson
|
||||
project('My Project', version : '1.0')
|
||||
summary({'bindir': get_option('bindir'),
|
||||
'libdir': get_option('libdir'),
|
||||
'datadir': get_option('datadir'),
|
||||
}, section: 'Directories')
|
||||
summary({'Some boolean': false,
|
||||
'Another boolean': true,
|
||||
'Some string': 'Hello World',
|
||||
'A list': ['string', 1, true],
|
||||
}, section: 'Configuration')
|
||||
```
|
||||
|
||||
Output:
|
||||
```
|
||||
My Project 1.0
|
||||
|
||||
Directories
|
||||
prefix: /opt/gnome
|
||||
bindir: bin
|
||||
libdir: lib/x86_64-linux-gnu
|
||||
datadir: share
|
||||
|
||||
Configuration
|
||||
Some boolean: False
|
||||
Another boolean: True
|
||||
Some string: Hello World
|
||||
A list: string
|
||||
1
|
||||
True
|
||||
```
|
||||
|
||||
## Generic Overrider for Dynamic Linker selection
|
||||
|
||||
Previous to meson 0.52.0 you set the dynamic linker using compiler specific
|
||||
flags passed via language flags and hoped things worked out. In meson 0.52.0
|
||||
meson started detecting the linker and making intelligent decisions about
|
||||
using it. Unfortunately this broke choosing a non-default linker.
|
||||
|
||||
Now there is a generic mechanism for doing this, you may use the LD
|
||||
environment variable (with normal meson environment variable rules), or add
|
||||
the following to a cross or native file:
|
||||
|
||||
```ini
|
||||
[binaries]
|
||||
ld = 'gold'
|
||||
```
|
||||
|
||||
And meson will select the linker if possible.
|
||||
|
||||
## `fortran_std` option
|
||||
|
||||
**new in 0.53.0**
|
||||
Akin to the `c_std` and `cpp_std` options, the `fortran_std` option sets Fortran compilers to warn or error on non-Fortran standard code.
|
||||
Only the Gfortran and Intel Fortran compilers have support for this option.
|
||||
Other Fortran compilers ignore the `fortran_std` option.
|
||||
|
||||
Supported values for `fortran_std` include:
|
||||
|
||||
* `legacy` for non-conforming code--this is especially important for Gfortran, which by default errors on old non-compliant Fortran code
|
||||
* `f95` for Fortran 95 compliant code.
|
||||
* `f2003` for Fortran 2003 compliant code.
|
||||
* `f2008` for Fortran 2008 compliant code.
|
||||
* `f2018` for Fortran 2018 compliant code.
|
||||
|
||||
## python.dependency() embed kwarg
|
||||
|
||||
Added the `embed` kwarg to the python module dependency function to select
|
||||
the python library that can be used to embed python into an application.
|
||||
|
||||
## Scalapack
|
||||
|
||||
added in **0.53.0**:
|
||||
|
||||
```meson
|
||||
scalapack = dependency('scalapack')
|
||||
```
|
||||
|
||||
Historically and through today, typical Scalapack setups have broken and incomplete pkg-config or
|
||||
FindScalapack.cmake. Meson handles finding Scalapack on setups including:
|
||||
|
||||
* Linux: Intel MKL or OpenMPI + Netlib
|
||||
* MacOS: Intel MKL or OpenMPI + Netlib
|
||||
* Windows: Intel MKL (OpenMPI not available on Windows)
|
||||
|
||||
## Search directories for `find_program()`
|
||||
|
||||
It is now possible to give a list of absolute paths where `find_program()` should
|
||||
also search, using the `dirs` keyword argument.
|
||||
|
||||
For example on Linux `/sbin` and `/usr/sbin` are not always in the `$PATH`:
|
||||
```meson
|
||||
prog = find_program('mytool', dirs : ['/usr/sbin', '/sbin'])
|
||||
```
|
||||
|
||||
## Source tags targets
|
||||
|
||||
When the respective tools are available, 'ctags', 'TAGS' and 'cscope'
|
||||
targets will be generated by Meson, unless you have defined your own.
|
||||
|
||||
## Dictionary entry using string variable as key
|
||||
|
||||
Keys can now be any expression evaluating to a string value, not limited
|
||||
to string literals any more.
|
||||
```meson
|
||||
d = {'a' + 'b' : 42}
|
||||
k = 'cd'
|
||||
d += {k : 43}
|
||||
```
|
||||
|
||||
## Improved CMake subprojects support
|
||||
|
||||
With this release even more CMake projects are supported via
|
||||
[CMake subprojects](CMake-module.md#cmake-subprojects) due to these internal
|
||||
improvements:
|
||||
|
||||
- Use the CMake file API for CMake >=3.14
|
||||
- Handle the explicit dependencies via `add_dependency`
|
||||
- Basic support for `add_custom_target`
|
||||
- Improved `add_custom_command` support
|
||||
- Object library support on Windows
|
||||
|
||||
## compiler.get_linker_id()
|
||||
|
||||
since 0.53.0, `compiler.get_linker_id()` allows retrieving a lowercase name for the linker.
|
||||
Since each compiler family can typically use a variety of linkers depending on operating system,
|
||||
this helps users define logic for corner cases not otherwise easily handled.
|
||||
|
||||
## CUDA dependency
|
||||
|
||||
Native support for compiling and linking against the CUDA Toolkit using
|
||||
the `dependency` function:
|
||||
|
||||
```meson
|
||||
project('CUDA test', 'cpp', meson_version: '>= 0.53.0')
|
||||
exe = executable('prog', 'prog.cc', dependencies: dependency('cuda'))
|
||||
```
|
||||
|
||||
See [the CUDA dependency](Dependencies.md#cuda) for more information.
|
||||
|
||||
## Added global option to disable C++ RTTI
|
||||
|
||||
The new boolean option is called `cpp_rtti`.
|
||||
|
||||
## Introspection API changes
|
||||
|
||||
dependencies (--dependencies, intro-dependencies.json):
|
||||
- added the `version` key
|
||||
|
||||
scanning dependencies (--scan-dependencies):
|
||||
- added the `version` key containing the required dependency version
|
||||
|
||||
tests and benchmarks (--tests, --benchmarks, intro-tests.json,
|
||||
intro-benchmarks.json):
|
||||
- added the `protocol` key
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
## Dictionary entry using string variable as key
|
||||
|
||||
Keys can now be any expression evaluating to a string value, not limited
|
||||
to string literals any more.
|
||||
```meson
|
||||
d = {'a' + 'b' : 42}
|
||||
k = 'cd'
|
||||
d += {k : 43}
|
||||
```
|
|
@ -1,11 +0,0 @@
|
|||
## Improved CMake subprojects support
|
||||
|
||||
With this release even more CMake projects are supported via
|
||||
[CMake subprojects](CMake-module.md#cmake-subprojects) due to these internal
|
||||
improvements:
|
||||
|
||||
- Use the CMake file API for CMake >=3.14
|
||||
- Handle the explicit dependencies via `add_dependency`
|
||||
- Basic support for `add_custom_target`
|
||||
- Improved `add_custom_command` support
|
||||
- Object library support on Windows
|
|
@ -1,11 +0,0 @@
|
|||
## CUDA dependency
|
||||
|
||||
Native support for compiling and linking against the CUDA Toolkit using
|
||||
the `dependency` function:
|
||||
|
||||
```meson
|
||||
project('CUDA test', 'cpp', meson_version: '>= 0.53.0')
|
||||
exe = executable('prog', 'prog.cc', dependencies: dependency('cuda'))
|
||||
```
|
||||
|
||||
See [the CUDA dependency](Dependencies.md#cuda) for more information.
|
|
@ -1,6 +0,0 @@
|
|||
## meson dist --include-subprojects
|
||||
|
||||
`meson dist` command line now gained `--include-subprojects` command line option.
|
||||
When enabled, the source tree of all subprojects used by the current build will
|
||||
also be included in the final tarball. This is useful to distribute self contained
|
||||
tarball that can be built offline (i.e. `--wrap-mode=nodownload`).
|
|
@ -1,9 +0,0 @@
|
|||
## Search directories for `find_program()`
|
||||
|
||||
It is now possible to give a list of absolute paths where `find_program()` should
|
||||
also search, using the `dirs` keyword argument.
|
||||
|
||||
For example on Linux `/sbin` and `/usr/sbin` are not always in the `$PATH`:
|
||||
```meson
|
||||
prog = find_program('mytool', dirs : ['/usr/sbin', '/sbin'])
|
||||
```
|
|
@ -1,14 +0,0 @@
|
|||
## `fortran_std` option
|
||||
|
||||
**new in 0.53.0**
|
||||
Akin to the `c_std` and `cpp_std` options, the `fortran_std` option sets Fortran compilers to warn or error on non-Fortran standard code.
|
||||
Only the Gfortran and Intel Fortran compilers have support for this option.
|
||||
Other Fortran compilers ignore the `fortran_std` option.
|
||||
|
||||
Supported values for `fortran_std` include:
|
||||
|
||||
* `legacy` for non-conforming code--this is especially important for Gfortran, which by default errors on old non-compliant Fortran code
|
||||
* `f95` for Fortran 95 compliant code.
|
||||
* `f2003` for Fortran 2003 compliant code.
|
||||
* `f2008` for Fortran 2008 compliant code.
|
||||
* `f2018` for Fortran 2018 compliant code.
|
|
@ -1,10 +0,0 @@
|
|||
## A new module for filesystem operations
|
||||
|
||||
The new `fs` module can be used to examine the contents of the current
|
||||
file system.
|
||||
|
||||
```meson
|
||||
fs = import('fs')
|
||||
assert(fs.exists('important_file'),
|
||||
'The important file is missing.')
|
||||
```
|
|
@ -1,5 +0,0 @@
|
|||
## compiler.get_linker_id()
|
||||
|
||||
since 0.53.0, `compiler.get_linker_id()` allows retrieving a lowercase name for the linker.
|
||||
Since each compiler family can typically use a variety of linkers depending on operating system,
|
||||
this helps users define logic for corner cases not otherwise easily handled.
|
|
@ -1,11 +0,0 @@
|
|||
## Introspection API changes
|
||||
|
||||
dependencies (--dependencies, intro-dependencies.json):
|
||||
- added the `version` key
|
||||
|
||||
scanning dependencies (--scan-dependencies):
|
||||
- added the `version` key containing the required dependency version
|
||||
|
||||
tests and benchmarks (--tests, --benchmarks, intro-tests.json,
|
||||
intro-benchmarks.json):
|
||||
- added the `protocol` key
|
|
@ -1,17 +0,0 @@
|
|||
## Generic Overrider for Dynamic Linker selection
|
||||
|
||||
Previous to meson 0.52.0 you set the dynamic linker using compiler specific
|
||||
flags passed via language flags and hoped things worked out. In meson 0.52.0
|
||||
meson started detecting the linker and making intelligent decisions about
|
||||
using it. Unfortunately this broke choosing a non-default linker.
|
||||
|
||||
Now there is a generic mechanism for doing this, you may use the LD
|
||||
environment variable (with normal meson environment variable rules), or add
|
||||
the following to a cross or native file:
|
||||
|
||||
```ini
|
||||
[binaries]
|
||||
ld = 'gold'
|
||||
```
|
||||
|
||||
And meson will select the linker if possible.
|
|
@ -1,5 +0,0 @@
|
|||
## Added new Meson templates for `Dlang`, `Rust`, `Objective-C`
|
||||
|
||||
Meson now ships with predefined project templates for `Dlang`,
|
||||
`Fortran`, `Rust`, `Objective-C`, and by passing the associated flags `d`,
|
||||
`fortran`, `rust`, `objc` to `meson init --language`.
|
|
@ -1,3 +0,0 @@
|
|||
## Added global option to disable C++ RTTI
|
||||
|
||||
The new boolean option is called `cpp_rtti`.
|
|
@ -1,4 +0,0 @@
|
|||
## python.dependency() embed kwarg
|
||||
|
||||
Added the `embed` kwarg to the python module dependency function to select
|
||||
the python library that can be used to embed python into an application.
|
|
@ -1,14 +0,0 @@
|
|||
## Scalapack
|
||||
|
||||
added in **0.53.0**:
|
||||
|
||||
```meson
|
||||
scalapack = dependency('scalapack')
|
||||
```
|
||||
|
||||
Historically and through today, typical Scalapack setups have broken and incomplete pkg-config or
|
||||
FindScalapack.cmake. Meson handles finding Scalapack on setups including:
|
||||
|
||||
* Linux: Intel MKL or OpenMPI + Netlib
|
||||
* MacOS: Intel MKL or OpenMPI + Netlib
|
||||
* Windows: Intel MKL (OpenMPI not available on Windows)
|
|
@ -1,37 +0,0 @@
|
|||
## Add a new summary() function
|
||||
|
||||
A new function [`summary()`](Reference-manual.md#summary) has been added to
|
||||
summarize build configuration at the end of the build process.
|
||||
|
||||
Example:
|
||||
```meson
|
||||
project('My Project', version : '1.0')
|
||||
summary({'bindir': get_option('bindir'),
|
||||
'libdir': get_option('libdir'),
|
||||
'datadir': get_option('datadir'),
|
||||
}, section: 'Directories')
|
||||
summary({'Some boolean': false,
|
||||
'Another boolean': true,
|
||||
'Some string': 'Hello World',
|
||||
'A list': ['string', 1, true],
|
||||
}, section: 'Configuration')
|
||||
```
|
||||
|
||||
Output:
|
||||
```
|
||||
My Project 1.0
|
||||
|
||||
Directories
|
||||
prefix: /opt/gnome
|
||||
bindir: bin
|
||||
libdir: lib/x86_64-linux-gnu
|
||||
datadir: share
|
||||
|
||||
Configuration
|
||||
Some boolean: False
|
||||
Another boolean: True
|
||||
Some string: Hello World
|
||||
A list: string
|
||||
1
|
||||
True
|
||||
```
|
|
@ -1,4 +0,0 @@
|
|||
## Source tags targets
|
||||
|
||||
When the respective tools are available, 'ctags', 'TAGS' and 'cscope'
|
||||
targets will be generated by Meson, unless you have defined your own.
|
|
@ -76,6 +76,7 @@ index.md
|
|||
Shipping-prebuilt-binaries-as-wraps.md
|
||||
fallback-wraptool.md
|
||||
Release-notes.md
|
||||
Release-notes-for-0.53.0.md
|
||||
Release-notes-for-0.52.0.md
|
||||
Release-notes-for-0.51.0.md
|
||||
Release-notes-for-0.50.0.md
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.TH MESON "1" "October 2019" "meson 0.52.0" "User Commands"
|
||||
.TH MESON "1" "January 2020" "meson 0.53.0" "User Commands"
|
||||
.SH NAME
|
||||
meson - a high productivity build system
|
||||
.SH DESCRIPTION
|
||||
|
|
|
@ -40,7 +40,7 @@ if TYPE_CHECKING:
|
|||
|
||||
OptionDictType = Dict[str, 'UserOption[Any]']
|
||||
|
||||
version = '0.52.999'
|
||||
version = '0.53.0'
|
||||
backendlist = ['ninja', 'vs', 'vs2010', 'vs2015', 'vs2017', 'vs2019', 'xcode']
|
||||
|
||||
default_yielding = False
|
||||
|
|
Loading…
Reference in New Issue