aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/markdown/Gnome-module.md9
-rw-r--r--docs/markdown/Python-module.md40
-rw-r--r--docs/markdown/Reference-manual.md13
-rw-r--r--docs/markdown/Release-notes-for-0.46.0.md315
-rw-r--r--docs/markdown/Release-notes-for-0.47.0.md23
-rw-r--r--docs/markdown/Syntax.md3
-rw-r--r--docs/markdown/Users.md1
-rw-r--r--docs/markdown/Wrap-dependency-system-manual.md6
-rw-r--r--docs/markdown/snippets/altered-logging.md5
-rw-r--r--docs/markdown/snippets/armcc-cross.md15
-rw-r--r--docs/markdown/snippets/both-libraries.md9
-rw-r--r--docs/markdown/snippets/compiler-object-run_command.md10
-rw-r--r--docs/markdown/snippets/d-options-for-meson-setup.md6
-rw-r--r--docs/markdown/snippets/declare_dependency-link_whole.md4
-rw-r--r--docs/markdown/snippets/del-old-names.md7
-rw-r--r--docs/markdown/snippets/find-override.md37
-rw-r--r--docs/markdown/snippets/has-link-argument.md9
-rw-r--r--docs/markdown/snippets/improved-help.md6
-rw-r--r--docs/markdown/snippets/improved-meson-init.md19
-rw-r--r--docs/markdown/snippets/install_data-rename.md11
-rw-r--r--docs/markdown/snippets/lcc.md23
-rw-r--r--docs/markdown/snippets/more-escape-sequences.md17
-rw-r--r--docs/markdown/snippets/new-wrap-mode.md3
-rw-r--r--docs/markdown/snippets/non-unique-target-names.md9
-rw-r--r--docs/markdown/snippets/openmp-dependency.md6
-rw-r--r--docs/markdown/snippets/partial-dependencies.md25
-rw-r--r--docs/markdown/snippets/pkg-config-fix-static-only.md12
-rw-r--r--docs/markdown/snippets/pkgconfig-generator.md14
-rw-r--r--docs/markdown/snippets/pkgconfig-requires-non-string.md5
-rw-r--r--docs/markdown/snippets/python-module.md6
-rw-r--r--docs/sitemap.txt1
31 files changed, 385 insertions, 284 deletions
diff --git a/docs/markdown/Gnome-module.md b/docs/markdown/Gnome-module.md
index 3db6cc0..1bf333f 100644
--- a/docs/markdown/Gnome-module.md
+++ b/docs/markdown/Gnome-module.md
@@ -227,9 +227,11 @@ useful when running the application locally for example during tests.
### gnome.gdbus_codegen()
Compiles the given XML schema into gdbus source code. Takes two
-positional arguments, the first one specifies the name of the source
-files and the second specifies the XML file name.
+positional arguments, the first one specifies the base name to use
+while creating the output source and header and the second specifies
+one XML file.
+* `sources`: list of XML files
* `interface_prefix`: prefix for the interface
* `namespace`: namespace of the interface
* `object_manager`: *(Added 0.40.0)* if true generates object manager code
@@ -257,7 +259,8 @@ Example:
gnome = import('gnome')
# The returned source would be passed to another target
-gdbus_src = gnome.gdbus_codegen('example-interface', 'com.example.Sample.xml',
+gdbus_src = gnome.gdbus_codegen('example-interface',
+ sources: 'com.example.Sample.xml',
interface_prefix : 'com.example.',
namespace : 'Sample',
annotations : [
diff --git a/docs/markdown/Python-module.md b/docs/markdown/Python-module.md
index cad74c9..51721f0 100644
--- a/docs/markdown/Python-module.md
+++ b/docs/markdown/Python-module.md
@@ -142,7 +142,7 @@ This function expects no arguments or keyword arguments.
#### `get_path()`
``` meson
-string py_installation.get_path(path_name)
+string py_installation.get_path(path_name, fallback)
```
Get a path as defined by the `sysconfig` module.
@@ -153,15 +153,28 @@ For example:
purelib = py_installation.get_path('purelib')
```
-This function accepts a single argument, `path_name`, which is expected to
-be a non-empty string.
+This function requires at least one argument, `path_name`,
+which is expected to be a non-empty string.
+
+If `fallback` is specified, it will be returned if no path
+with the given name exists. Otherwise, attempting to read
+a non-existing path will cause a fatal error.
**Returns**: A string
+#### `has_path()`
+
+``` meson
+ bool py_installation.has_path(path_name)
+```
+
+**Returns**: true if a path named `path_name` can be retrieved with
+[][`get_path()`], false otherwise.
+
#### `get_variable()`
``` meson
-string py_installation.get_variable(variable_name)
+string py_installation.get_variable(variable_name, fallback)
```
Get a variable as defined by the `sysconfig` module.
@@ -169,14 +182,27 @@ Get a variable as defined by the `sysconfig` module.
For example:
``` meson
-py_bindir = py_installation.get_variable('BINDIR')
+py_bindir = py_installation.get_variable('BINDIR', '')
```
-This function accepts a single argument, `variable_name`, which is expected to
-be a non-empty string.
+This function requires at least one argument, `variable_name`,
+which is expected to be a non-empty string.
+
+If `fallback` is specified, it will be returned if no variable
+with the given name exists. Otherwise, attempting to read
+a non-existing variable will cause a fatal error.
**Returns**: A string
+#### `has_variable()`
+
+``` meson
+ bool py_installation.has_variable(variable_name)
+```
+
+**Returns**: true if a variable named `variable_name` can be retrieved with
+[][`get_variable()`], false otherwise.
+
## `python_dependency` object
This [dependency object] subclass will try various methods to obtain the
diff --git a/docs/markdown/Reference-manual.md b/docs/markdown/Reference-manual.md
index 74e7ff2..776703c 100644
--- a/docs/markdown/Reference-manual.md
+++ b/docs/markdown/Reference-manual.md
@@ -1256,6 +1256,13 @@ Keyword arguments are the following:
- `workdir` absolute path that will be used as the working directory
for the test
+- `depends` specifies that this test depends on the specified
+ target(s), even though it does not take any of them as a command
+ line argument. This is meant for cases where test finds those
+ targets internally, e.g. plugins or globbing. Those targets are built
+ before test is executed even if they have `build_by_default : false`.
+ Since 0.46.0
+
Defined tests can be run in a backend-agnostic way by calling
`meson test` inside the build dir, or by using backend-specific
commands, such as `ninja test` or `msbuild RUN_TESTS.vcxproj`.
@@ -1729,7 +1736,11 @@ A build target is either an [executable](#executable),
[shared module](#shared_module).
- `extract_all_objects()` is same as `extract_objects` but returns all
- object files generated by this target
+ object files generated by this target. Since 0.46.0 keyword argument
+ `recursive` must be set to `true` to also return objects passed to the
+ `object` 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.
- `extract_objects()` returns an opaque value representing the
generated object files of arguments, usually used to take single
diff --git a/docs/markdown/Release-notes-for-0.46.0.md b/docs/markdown/Release-notes-for-0.46.0.md
index e062459..c9f9bbd 100644
--- a/docs/markdown/Release-notes-for-0.46.0.md
+++ b/docs/markdown/Release-notes-for-0.46.0.md
@@ -1,23 +1,316 @@
---
title: Release 0.46
-short-description: Release notes for 0.46 (preliminary)
+short-description: Release notes for 0.46
...
# 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.
+
+## 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.
+
+```ini
+[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:` 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:
+
+```meson
+cc = meson.get_compiler('c')
+result = run_command(cc, '-print-file-name=plugin')
+plugin_dev_path = result.stdout().strip()
+```
+
+## declare_dependency() now supports `link_whole:`
+
+`declare_dependency()` now supports the `link_whole:` keyword argument which
+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.
+
+## 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
+
+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
+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)
+```
+
+## 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.
+
+- `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:`
+
+The `rename:` keyword argument is used to change names of the installed
+files. Here's how you install and rename the following files:
+
+- `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.
+
+## 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.
+
+## 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()`](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
+
+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:` 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.
+
+## 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`.
diff --git a/docs/markdown/Release-notes-for-0.47.0.md b/docs/markdown/Release-notes-for-0.47.0.md
new file mode 100644
index 0000000..58d47ee
--- /dev/null
+++ b/docs/markdown/Release-notes-for-0.47.0.md
@@ -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.
diff --git a/docs/markdown/Syntax.md b/docs/markdown/Syntax.md
index 01c8c6e..30eedf8 100644
--- a/docs/markdown/Syntax.md
+++ b/docs/markdown/Syntax.md
@@ -131,7 +131,8 @@ int main (int argc, char ** argv) {
}'''
```
-This can also be combined with the string formatting functionality
+These are raw strings that do not support the escape sequences listed above.
+These strings can also be combined with the string formatting functionality
described below.
#### String formatting
diff --git a/docs/markdown/Users.md b/docs/markdown/Users.md
index 558378c..0a30d9c 100644
--- a/docs/markdown/Users.md
+++ b/docs/markdown/Users.md
@@ -9,6 +9,7 @@ listed in the [`meson` GitHub topic](https://github.com/topics/meson).
- [AQEMU](https://github.com/tobimensch/aqemu), a Qt GUI for QEMU virtual machines, since version 0.9.3
- [Arduino sample project](https://github.com/jpakkane/mesonarduino)
+ - [bolt](https://gitlab.freedesktop.org/bolt/bolt) Userpsace daemon to enable security levels for Thunderboltâ„¢ 3 on Linux
- [Budgie Desktop](https://github.com/budgie-desktop/budgie-desktop), a desktop environment built on GNOME technologies
- [casync](https://github.com/systemd/casync), Content-Addressable Data Synchronization Tool
- [cinnamon-desktop](https://github.com/linuxmint/cinnamon-desktop), the cinnamon desktop library
diff --git a/docs/markdown/Wrap-dependency-system-manual.md b/docs/markdown/Wrap-dependency-system-manual.md
index d97fc9a..38e1ab2 100644
--- a/docs/markdown/Wrap-dependency-system-manual.md
+++ b/docs/markdown/Wrap-dependency-system-manual.md
@@ -93,9 +93,9 @@ revision=head
The format is straightforward. The only thing to note is the revision
element that can have one of two values. The first is `head` which
will cause Meson to track the master head (doing a repull whenever the
-build definition is altered). The second type is a commit hash. In
-this case Meson will use the commit specified (with `git checkout
-[hash id]`).
+build definition is altered). The second type is a commit hash or a
+tag. In this case Meson will use the commit specified (with `git
+checkout [hash/tag id]`).
Note that in this case you cannot specify an extra patch file to
use. The git repo must contain all necessary Meson build definitions.
diff --git a/docs/markdown/snippets/altered-logging.md b/docs/markdown/snippets/altered-logging.md
deleted file mode 100644
index 4ff9bb0..0000000
--- a/docs/markdown/snippets/altered-logging.md
+++ /dev/null
@@ -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.
diff --git a/docs/markdown/snippets/armcc-cross.md b/docs/markdown/snippets/armcc-cross.md
deleted file mode 100644
index 668f0ab..0000000
--- a/docs/markdown/snippets/armcc-cross.md
+++ /dev/null
@@ -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']
-
-```
diff --git a/docs/markdown/snippets/both-libraries.md b/docs/markdown/snippets/both-libraries.md
deleted file mode 100644
index 1632f63..0000000
--- a/docs/markdown/snippets/both-libraries.md
+++ /dev/null
@@ -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.
diff --git a/docs/markdown/snippets/compiler-object-run_command.md b/docs/markdown/snippets/compiler-object-run_command.md
deleted file mode 100644
index 0308416..0000000
--- a/docs/markdown/snippets/compiler-object-run_command.md
+++ /dev/null
@@ -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()
diff --git a/docs/markdown/snippets/d-options-for-meson-setup.md b/docs/markdown/snippets/d-options-for-meson-setup.md
deleted file mode 100644
index 37afbe0..0000000
--- a/docs/markdown/snippets/d-options-for-meson-setup.md
+++ /dev/null
@@ -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.
diff --git a/docs/markdown/snippets/declare_dependency-link_whole.md b/docs/markdown/snippets/declare_dependency-link_whole.md
deleted file mode 100644
index 827b1f6..0000000
--- a/docs/markdown/snippets/declare_dependency-link_whole.md
+++ /dev/null
@@ -1,4 +0,0 @@
-## declare_dependency() supports link_whole
-
-`declare_dependency()` supports `link_whole` parameter.
-`link_whole` propagates to build target that uses dependency.
diff --git a/docs/markdown/snippets/del-old-names.md b/docs/markdown/snippets/del-old-names.md
deleted file mode 100644
index 5ac5873..0000000
--- a/docs/markdown/snippets/del-old-names.md
+++ /dev/null
@@ -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.
diff --git a/docs/markdown/snippets/find-override.md b/docs/markdown/snippets/find-override.md
deleted file mode 100644
index ef3a4a2..0000000
--- a/docs/markdown/snippets/find-override.md
+++ /dev/null
@@ -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)
-```
diff --git a/docs/markdown/snippets/has-link-argument.md b/docs/markdown/snippets/has-link-argument.md
deleted file mode 100644
index 7beda63..0000000
--- a/docs/markdown/snippets/has-link-argument.md
+++ /dev/null
@@ -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()`
diff --git a/docs/markdown/snippets/improved-help.md b/docs/markdown/snippets/improved-help.md
deleted file mode 100644
index db7e852..0000000
--- a/docs/markdown/snippets/improved-help.md
+++ /dev/null
@@ -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.
diff --git a/docs/markdown/snippets/improved-meson-init.md b/docs/markdown/snippets/improved-meson-init.md
deleted file mode 100644
index ec17bc4..0000000
--- a/docs/markdown/snippets/improved-meson-init.md
+++ /dev/null
@@ -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.
diff --git a/docs/markdown/snippets/install_data-rename.md b/docs/markdown/snippets/install_data-rename.md
deleted file mode 100644
index 6378d0f..0000000
--- a/docs/markdown/snippets/install_data-rename.md
+++ /dev/null
@@ -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')
-```
diff --git a/docs/markdown/snippets/lcc.md b/docs/markdown/snippets/lcc.md
deleted file mode 100644
index 2ce300d..0000000
--- a/docs/markdown/snippets/lcc.md
+++ /dev/null
@@ -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. \ No newline at end of file
diff --git a/docs/markdown/snippets/more-escape-sequences.md b/docs/markdown/snippets/more-escape-sequences.md
deleted file mode 100644
index 2894079..0000000
--- a/docs/markdown/snippets/more-escape-sequences.md
+++ /dev/null
@@ -1,17 +0,0 @@
-## String escape character update
-
-The strings (both single-quoted and triple-quoted) in meson has 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* 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 single-quote strings supported escape sequences and
-the supported sequences were `\'`, `\\` and `\n`.
-
-The most likely breakage is usage of backslash-n in triple-quoted strings. It
-is now written in the same way as in single-quoted strings: `\\n` instead of
-`\n`. In general it is now recommended to escape any usage of backslash.
-However, backslash-c (`\c`), for example, is still backslash-c because it isn't
-a valid escape sequence.
diff --git a/docs/markdown/snippets/new-wrap-mode.md b/docs/markdown/snippets/new-wrap-mode.md
deleted file mode 100644
index e33dd83..0000000
--- a/docs/markdown/snippets/new-wrap-mode.md
+++ /dev/null
@@ -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.
diff --git a/docs/markdown/snippets/non-unique-target-names.md b/docs/markdown/snippets/non-unique-target-names.md
deleted file mode 100644
index 9b3f917..0000000
--- a/docs/markdown/snippets/non-unique-target-names.md
+++ /dev/null
@@ -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.
diff --git a/docs/markdown/snippets/openmp-dependency.md b/docs/markdown/snippets/openmp-dependency.md
deleted file mode 100644
index ad70011..0000000
--- a/docs/markdown/snippets/openmp-dependency.md
+++ /dev/null
@@ -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.
diff --git a/docs/markdown/snippets/partial-dependencies.md b/docs/markdown/snippets/partial-dependencies.md
deleted file mode 100644
index 8d2136a..0000000
--- a/docs/markdown/snippets/partial-dependencies.md
+++ /dev/null
@@ -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.
diff --git a/docs/markdown/snippets/pkg-config-fix-static-only.md b/docs/markdown/snippets/pkg-config-fix-static-only.md
deleted file mode 100644
index 31cd389..0000000
--- a/docs/markdown/snippets/pkg-config-fix-static-only.md
+++ /dev/null
@@ -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.
diff --git a/docs/markdown/snippets/pkgconfig-generator.md b/docs/markdown/snippets/pkgconfig-generator.md
deleted file mode 100644
index 93920d3..0000000
--- a/docs/markdown/snippets/pkgconfig-generator.md
+++ /dev/null
@@ -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)
-```
diff --git a/docs/markdown/snippets/pkgconfig-requires-non-string.md b/docs/markdown/snippets/pkgconfig-requires-non-string.md
deleted file mode 100644
index abf85b0..0000000
--- a/docs/markdown/snippets/pkgconfig-requires-non-string.md
+++ /dev/null
@@ -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.
diff --git a/docs/markdown/snippets/python-module.md b/docs/markdown/snippets/python-module.md
deleted file mode 100644
index c2e8138..0000000
--- a/docs/markdown/snippets/python-module.md
+++ /dev/null
@@ -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.
diff --git a/docs/sitemap.txt b/docs/sitemap.txt
index b439b69..46b3b6a 100644
--- a/docs/sitemap.txt
+++ b/docs/sitemap.txt
@@ -66,6 +66,7 @@ index.md
Shipping-prebuilt-binaries-as-wraps.md
fallback-wraptool.md
Release-notes.md
+ Release-notes-for-0.47.0.md
Release-notes-for-0.46.0.md
Release-notes-for-0.45.0.md
Release-notes-for-0.44.0.md