Updated information for new release.

pull/3180/head 0.45.0
Jussi Pakkanen 7 years ago
parent 06dadfc45f
commit daaae647d7
  1. 184
      docs/markdown/Release-notes-for-0.45.0.md
  2. 16
      docs/markdown/Release-notes-for-0.46.0.md
  3. 13
      docs/markdown/snippets/config-tool-cross.md
  4. 4
      docs/markdown/snippets/csc.md
  5. 14
      docs/markdown/snippets/deprecations.md
  6. 12
      docs/markdown/snippets/fpga.md
  7. 21
      docs/markdown/snippets/gen-subdirs.md
  8. 5
      docs/markdown/snippets/hexnumbers.md
  9. 7
      docs/markdown/snippets/if-release.md
  10. 4
      docs/markdown/snippets/install_subdir-strip_directory.md
  11. 5
      docs/markdown/snippets/installdir.md
  12. 6
      docs/markdown/snippets/intopt.md
  13. 4
      docs/markdown/snippets/project-license.md
  14. 16
      docs/markdown/snippets/rust-cross.md
  15. 6
      docs/markdown/snippets/rust-private-disambiguation.md
  16. 8
      docs/markdown/snippets/templates.md
  17. 16
      docs/markdown/snippets/test-setups.md
  18. 3
      docs/markdown/snippets/windows-resources-custom-targets.md
  19. 11
      docs/markdown/snippets/wrap_promote.md
  20. 8
      docs/markdown/snippets/yield.md
  21. 1
      docs/sitemap.txt
  22. 2
      man/meson.1
  23. 2
      man/mesonconf.1
  24. 2
      man/mesonintrospect.1
  25. 2
      man/mesontest.1
  26. 2
      man/wraptool.1
  27. 2
      mesonbuild/coredata.py

@ -1,16 +1,186 @@
---
title: Release 0.45
short-description: Release notes for 0.45 (preliminary)
short-description: Release notes for 0.45
...
# New features
This page is a placeholder for the eventual release notes.
## Config-Tool based dependencies can be specified in a cross file
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:
Tools like LLVM and pcap use a config tool for dependencies, this is a script
or binary that is run to get configuration information (cflags, ldflags, etc)
from.
## Feature name
These binaries may now be specified in the `binaries` section of a cross file.
A short description explaining the new feature and how it should be used.
```dosini
[binaries]
cc = ...
llvm-config = '/usr/bin/llvm-config32'
```
## Visual Studio C# compiler support
In addition to the Mono C# compiler we also support Visual Studio's C#
compiler. Currently this is only supported on the Ninja backend.
## Removed two deprecated features
The standalone `find_library` function has been a no-op for a long
time. Starting with this version it becomes a hard error.
There used to be a keywordless version of `run_target` which looked
like this:
run_target('targetname', 'command', 'arg1', 'arg2')
This is now an error. The correct format for this is now:
run_target('targetname',
command : ['command', 'arg1', 'arg2'])
## Experimental FPGA support
This version adds support for generating, analysing and uploading FPGA
programs using the [IceStorm
toolchain](http://www.clifford.at/icestorm/). This support is
experimental and is currently limited to the `iCE 40` series of FPGA
chips.
FPGA generation integrates with other parts of Meson seamlessly. As an
example, [here](https://github.com/jpakkane/lm32) is an example
project that compiles a simple firmware into Verilog and combines that
with an lm32 softcore processor.
## Generator outputs can preserve directory structure
Normally when generating files with a generator, Meson flattens the
input files so they all go in the same directory. Some code
generators, such as Protocol Buffers, require that the generated files
have the same directory layout as the input files used to generate
them. This can now be achieved like this:
```meson
g = generator(...) # Compiles protobuf sources
generated = gen.process('com/mesonbuild/one.proto',
'com/mesonbuild/two.proto',
preserve_path_from : meson.current_source_dir())
This would cause the following files to be generated inside the target
private directory:
com/mesonbuild/one.pb.h
com/mesonbuild/one.pb.cc
com/mesonbuild/two.pb.h
com/mesonbuild/two.pb.cc
## Hexadecimal string literals
Hexadecimal integer literals can now be used in build and option files.
int_255 = 0xFF
## b_ndebug : if-release
The value `if-release` can be given for the `b_ndebug` project option.
This will make the `NDEBUG` pre-compiler macro to be defined for release
type builds as if the `b_ndebug` project option had had the value `true`
defined for it.
## `install_data()` defaults to `{datadir}/{projectname}`
If `install_data()` is not given an `install_dir` keyword argument, the
target directory defaults to `{datadir}/{projectname}` (e.g.
`/usr/share/myproj`).
## install_subdir() supports strip_directory
If strip_directory=true install_subdir() installs directory contents
instead of directory itself, stripping basename of the source directory.
## Integer options
There is a new integer option type with optional minimum and maximum
values. It can be specified like this in the `meson_options.txt` file:
option('integer_option', type : 'integer', min : 0, max : 5, value : 3)
## New method meson.project_license()
The `meson` builtin object now has a `project_license()` method that returns a
list of all licenses for the project.
## Rust cross-compilation
Cross-compilation is now supported for Rust targets. Like other
cross-compilers, the Rust binary must be specified in your cross
file. It should specify a `--target` (as installed by `rustup target`)
and a custom linker pointing to your C cross-compiler. For example:
```
[binaries]
c = '/usr/bin/arm-linux-gnueabihf-gcc-7'
rust = [
'rustc',
'--target', 'arm-unknown-linux-gnueabihf',
'-C', 'linker=/usr/bin/arm-linux-gnueabihf-gcc-7',
]
```
## Rust compiler-private library disambiguation
When building a Rust target with Rust library dependencies, an
`--extern` argument is now specified to avoid ambiguity between the
dependency library, and any crates of the same name in `rustc`'s
private sysroot.
## Project templates
Meson ships with predefined project templates. To start a new project from
scratch, simply go to an empty directory and type:
```meson
meson init --name=myproject --type=executable --language=c
```
## Improve test setup selection
Test setups are now identified (also) by the project they belong to and it
is possible to select the used test setup from a specific project. E.g.
to use a test setup `some_setup` from project `some_project` for all
executed tests one can use
meson test --setup some_project:some_setup
Should one rather want test setups to be used from the same project as
where the current test itself has been defined, one can use just
meson test --setup some_setup
In the latter case every (sub)project must have a test setup `some_setup`
defined in it.
## Can use custom targets as Windows resource files
The `compile_resources()` function of the `windows` module can now be used on custom targets as well as regular files.
# Can promote dependencies with wrap command
The `promote` command makes it easy to copy nested dependencies to the top level.
meson wrap promote scommon
This will search the project tree for a subproject called `scommon` and copy it to the top level.
If there are many embedded subprojects with the same name, you have to specify which one to promote manually like this:
meson wrap promote subprojects/s1/subprojects/scommon
## Yielding subproject option to superproject
Normally project options are specific to the current project. However
sometimes you want to have an option whose value is the same over all
projects. This can be achieved with the new `yield` keyword for
options. When set to `true`, getting the value of this option in
`meson.build` files gets the value from the option with the same name
in the master project (if such an option exists).

@ -0,0 +1,16 @@
---
title: Release 0.46
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.

@ -1,13 +0,0 @@
# Config-Tool based dependencies can be specified in a cross file
Tools like LLVM and pcap use a config tool for dependencies, this is a script
or binary that is run to get configuration information (cflags, ldflags, etc)
from.
These binaries may now be specified in the `binaries` section of a cross file.
```dosini
[binaries]
cc = ...
llvm-config = '/usr/bin/llvm-config32'
```

@ -1,4 +0,0 @@
## Visual Studio C# compiler support
In addition to the Mono C# compiler we also support Visual Studio's C#
compiler. Currently this is only supported on the Ninja backend.

@ -1,14 +0,0 @@
## Removed two deprecated features
The standalone `find_library` function has been a no-op for a long
time. Starting with this version it becomes a hard error.
There used to be a keywordless version of `run_target` which looked
like this:
run_target('targetname', 'command', 'arg1', 'arg2')
This is now an error. The correct format for this is now:
run_target('targetname',
command : ['command', 'arg1', 'arg2'])

@ -1,12 +0,0 @@
## Experimental FPGA support
This version adds support for generating, analysing and uploading FPGA
programs using the [IceStorm
toolchain](http://www.clifford.at/icestorm/). This support is
experimental and is currently limited to the `iCE 40` series of FPGA
chips.
FPGA generation integrates with other parts of Meson seamlessly. As an
example, [here](https://github.com/jpakkane/lm32) is an example
project that compiles a simple firmware into Verilog and combines that
with an lm32 softcore processor.

@ -1,21 +0,0 @@
## Generator outputs can preserve directory structure
Normally when generating files with a generator, Meson flattens the
input files so they all go in the same directory. Some code
generators, such as Protocol Buffers, require that the generated files
have the same directory layout as the input files used to generate
them. This can now be achieved like this:
```meson
g = generator(...) # Compiles protobuf sources
generated = gen.process('com/mesonbuild/one.proto',
'com/mesonbuild/two.proto',
preserve_path_from : meson.current_source_dir())
This would cause the following files to be generated inside the target
private directory:
com/mesonbuild/one.pb.h
com/mesonbuild/one.pb.cc
com/mesonbuild/two.pb.h
com/mesonbuild/two.pb.cc

@ -1,5 +0,0 @@
## Hexadecimal string literals
Hexadecimal integer literals can now be used in build and option files.
int_255 = 0xFF

@ -1,7 +0,0 @@
## b_ndebug : if-release
The value `if-release` can be given for the `b_ndebug` project option.
This will make the `NDEBUG` pre-compiler macro to be defined for release
type builds as if the `b_ndebug` project option had had the value `true`
defined for it.

@ -1,4 +0,0 @@
## install_subdir() supports strip_directory
If strip_directory=true install_subdir() installs directory contents
instead of directory itself, stripping basename of the source directory.

@ -1,5 +0,0 @@
## `install_data()` defaults to `{datadir}/{projectname}`
If `install_data()` is not given an `install_dir` keyword argument, the
target directory defaults to `{datadir}/{projectname}` (e.g.
`/usr/share/myproj`).

@ -1,6 +0,0 @@
## Integer options
There is a new integer option type with optional minimum and maximum
values. It can be specified like this in the `meson_options.txt` file:
option('integer_option', type : 'integer', min : 0, max : 5, value : 3)

@ -1,4 +0,0 @@
## New method meson.project_license()
The `meson` builtin object now has a `project_license()` method that returns a
list of all licenses for the project.

@ -1,16 +0,0 @@
## Rust cross-compilation
Cross-compilation is now supported for Rust targets. Like other
cross-compilers, the Rust binary must be specified in your cross
file. It should specify a `--target` (as installed by `rustup target`)
and a custom linker pointing to your C cross-compiler. For example:
```
[binaries]
c = '/usr/bin/arm-linux-gnueabihf-gcc-7'
rust = [
'rustc',
'--target', 'arm-unknown-linux-gnueabihf',
'-C', 'linker=/usr/bin/arm-linux-gnueabihf-gcc-7',
]
```

@ -1,6 +0,0 @@
## Rust compiler-private library disambiguation
When building a Rust target with Rust library dependencies, an
`--extern` argument is now specified to avoid ambiguity between the
dependency library, and any crates of the same name in `rustc`'s
private sysroot.

@ -1,8 +0,0 @@
## Project templates
Meson ships with predefined project templates. To start a new project from
scratch, simply go to an empty directory and type:
```meson
meson init --name=myproject --type=executable --language=c
```

@ -1,16 +0,0 @@
## Improve test setup selection
Test setups are now identified (also) by the project they belong to and it
is possible to select the used test setup from a specific project. E.g.
to use a test setup `some_setup` from project `some_project` for all
executed tests one can use
meson test --setup some_project:some_setup
Should one rather want test setups to be used from the same project as
where the current test itself has been defined, one can use just
meson test --setup some_setup
In the latter case every (sub)project must have a test setup `some_setup`
defined in it.

@ -1,3 +0,0 @@
## Can use custom targets as Windows resource files
The `compile_resources()` function of the `windows` module can now be used on custom targets as well as regular files.

@ -1,11 +0,0 @@
# Can promote dependencies with wrap command
The `promote` command makes it easy to copy nested dependencies to the top level.
meson wrap promote scommon
This will search the project tree for a subproject called `scommon` and copy it to the top level.
If there are many embedded subprojects with the same name, you have to specify which one to promote manually like this:
meson wrap promote subprojects/s1/subprojects/scommon

@ -1,8 +0,0 @@
## Yielding subproject option to superproject
Normally project options are specific to the current project. However
sometimes you want to have an option whose value is the same over all
projects. This can be achieved with the new `yield` keyword for
options. When set to `true`, getting the value of this option in
`meson.build` files gets the value from the option with the same name
in the master project (if such an option exists).

@ -65,6 +65,7 @@ index.md
Shipping-prebuilt-binaries-as-wraps.md
fallback-wraptool.md
Release-notes.md
Release-notes-for-0.46.0.md
Release-notes-for-0.45.0.md
Release-notes-for-0.44.0.md
Release-notes-for-0.43.0.md

@ -1,4 +1,4 @@
.TH MESON "1" "December 2017" "meson 0.44.0" "User Commands"
.TH MESON "1" "March 2018" "meson 0.45.0" "User Commands"
.SH NAME
meson - a high productivity build system
.SH DESCRIPTION

@ -1,4 +1,4 @@
.TH MESONCONF "1" "December 2017" "mesonconf 0.44.0" "User Commands"
.TH MESONCONF "1" "March 2018" "mesonconf 0.45.0" "User Commands"
.SH NAME
mesonconf - a tool to configure Meson builds
.SH DESCRIPTION

@ -1,4 +1,4 @@
.TH MESONINTROSPECT "1" "December 2017" "mesonintrospect 0.44.0" "User Commands"
.TH MESONINTROSPECT "1" "March 2017" "mesonintrospect 0.45.0" "User Commands"
.SH NAME
mesonintrospect - a tool to extract information about a Meson build
.SH DESCRIPTION

@ -1,4 +1,4 @@
.TH MESON "1" "December 2017" "meson 0.44.0" "User Commands"
.TH MESON "1" "March 2018" "meson 0.45.0" "User Commands"
.SH NAME
mesontest - test tool for the Meson build system
.SH DESCRIPTION

@ -1,4 +1,4 @@
.TH WRAPTOOL "1" "December 2017" "meson 0.44.0" "User Commands"
.TH WRAPTOOL "1" "March 2018" "meson 0.45.0" "User Commands"
.SH NAME
wraptool - source dependency downloader
.SH DESCRIPTION

@ -21,7 +21,7 @@ from .mesonlib import MesonException
from .mesonlib import default_libdir, default_libexecdir, default_prefix
import ast
version = '0.45.0.dev1'
version = '0.45.0'
backendlist = ['ninja', 'vs', 'vs2010', 'vs2015', 'vs2017', 'xcode']
default_yielding = False

Loading…
Cancel
Save