aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2018-12-09 16:32:12 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2018-12-09 21:58:12 +0200
commit51aaa15bda0e955e45da014ca7720d038219eeff (patch)
tree366e47ee0c92e4e98854317cf513ddfdf3815d63
parentf7e657629fe2e779c9485112eb31632db77db9e7 (diff)
downloadmeson-51aaa15bda0e955e45da014ca7720d038219eeff.zip
meson-51aaa15bda0e955e45da014ca7720d038219eeff.tar.gz
meson-51aaa15bda0e955e45da014ca7720d038219eeff.tar.bz2
Update everything for release 0.49.00.49.0
-rw-r--r--docs/markdown/Release-notes-for-0.49.0.md311
-rw-r--r--docs/markdown/Release-notes-for-0.50.0.md17
-rw-r--r--docs/markdown/snippets/buildopts_section.md14
-rw-r--r--docs/markdown/snippets/ccrx_toolchain_support.md16
-rw-r--r--docs/markdown/snippets/cmake.md19
-rw-r--r--docs/markdown/snippets/compiler_argument_syntax.md22
-rw-r--r--docs/markdown/snippets/disabler.md6
-rw-r--r--docs/markdown/snippets/introspect_projectinfo.md35
-rw-r--r--docs/markdown/snippets/kwargdict.md28
-rw-r--r--docs/markdown/snippets/manpage_compression.md7
-rw-r--r--docs/markdown/snippets/native_files.md15
-rw-r--r--docs/markdown/snippets/new_syntax.md42
-rw-r--r--docs/markdown/snippets/pathdivision.md15
-rw-r--r--docs/markdown/snippets/pie.md6
-rw-r--r--docs/markdown/snippets/pkgconfig_break.md34
-rw-r--r--docs/markdown/snippets/subprojects_cmd.md7
-rw-r--r--docs/markdown/snippets/test_setup_is_default.md14
-rw-r--r--docs/sitemap.txt1
-rw-r--r--man/meson.12
-rw-r--r--mesonbuild/coredata.py2
20 files changed, 319 insertions, 294 deletions
diff --git a/docs/markdown/Release-notes-for-0.49.0.md b/docs/markdown/Release-notes-for-0.49.0.md
index bdf5769..5ccda76 100644
--- a/docs/markdown/Release-notes-for-0.49.0.md
+++ b/docs/markdown/Release-notes-for-0.49.0.md
@@ -1,22 +1,309 @@
---
title: Release 0.49
-short-description: Release notes for 0.49 (preliminary)
+short-description: Release notes for 0.49
...
-# New features
+## Libgcrypt dependency now supports libgcrypt-config
-This page is a placeholder for the eventual release notes.
+Earlier, `dependency('libgcrypt')` could only detect the library with pkg-config
+files. Now, if pkg-config files are not found, Meson will look for
+`libgcrypt-config` and if it's found, will use that to find the library.
-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:
+## New `section` key for the buildoptions introspection
- ## Feature name
+Meson now has a new `section` key in each build option. This allows
+IDEs to group these options similar to `meson configure`.
- A short description explaining the new feature and how it should be used.
+The possible values for `section` are:
-## Libgcrypt dependency now supports libgcrypt-config
+ - core
+ - backend
+ - base
+ - compiler
+ - directory
+ - user
+ - test
-Earlier, `dependency('libgcrypt')` could only detect the library with pkg-config
-files. Now, if pkg-config files are not found, Meson will look for
-`libgcrypt-config` and if it's found, will use that to find the library.
+## CC-RX compiler for C and CPP
+
+Cross-compilation is now supported for Renesas RX targets with the
+CC-RX compiler.
+
+The environment path should be set properly for the CC-RX compiler
+executables. The `-cpu` option with the appropriate value should be
+mentioned in the cross-file as shown in the snippet below.
+
+```ini
+[properties]
+c_args = ['-cpu=rx600']
+cpp_args = ['-cpu=rx600']
+```
+
+The default extension of the executable output is `.abs`. Other
+target specific arguments to the compiler and linker will need to be
+added explicitly from the
+cross-file(`c_args`/`c_link_args`/`cpp_args`/`cpp_link_args`) or some
+other way. Refer to the CC-RX User's manual for additional compiler
+and linker options.## CMake `find_package` dependency backend
+
+Meson can now use the CMake `find_package` ecosystem to
+detect dependencies. Both the old-style `<NAME>_LIBRARIES`
+variables as well as imported targets are supported. Meson
+can automatically guess the correct CMake target in most
+cases but it is also possible to manually specify a target
+with the `modules` property.
+
+```meson
+# Implicitly uses CMake as a fallback and guesses a target
+dep1 = dependency('KF5TextEditor')
+
+# Manually specify one or more CMake targets to use
+dep2 = dependency('ZLIB', method : 'cmake', modules : ['ZLIB::ZLIB'])
+```
+
+CMake is automatically used after `pkg-config` fails when
+no `method` (or `auto`) was provided in the dependency options.
+
+## New compiler method `get_argument_syntax`
+
+The compiler object now has `get_argument_syntax` method, which returns a
+string value of `gcc`, `msvc`, or an undefined value string value. This can be
+used to determine if a compiler uses gcc syntax (`-Wfoo`), msvc syntax
+(`/w1234`), or some other kind of arguments.
+
+```meson
+cc = meson.get_compiler('c')
+
+if cc.get_argument_syntax() == 'msvc'
+ if cc.has_argument('/w1235')
+ add_project_arguments('/w1235', language : ['c'])
+ endif
+elif cc.get_argument_syntax() == 'gcc'
+ if cc.has_argument('-Wfoo')
+ add_project_arguments('-Wfoo', language : ['c'])
+ endif
+elif cc.get_id() == 'some other compiler'
+ add_project_arguments('--error-on-foo', language : ['c'])
+endif
+```
+
+## Return `Disabler()` instead of not-found object
+
+Functions such as `dependency()`, `find_library()`, `find_program()`, and
+`python.find_installation()` have a new keyword argument: `disabler`. When set
+to `true` those functions return `Disabler()` objects instead of not-found
+objects.
+
+## `introspect --projectinfo` can now be used without configured build directory
+
+This allows IDE integration to get information about the project before the user has configured a build directory.
+
+Before you could use `meson.py introspect --projectinfo build-directory`.
+Now you also can use `meson.py introspect --projectinfo project-dir/meson.build`.
+
+The output is similiar to the output with a build directory but additionally also includes information from `introspect --buildsystem-files`.
+
+For example `meson.py introspect --projectinfo test\ cases/common/47\ subproject\ options/meson.build`
+This outputs (pretty printed for readability):
+```
+{
+ "buildsystem_files": [
+ "meson_options.txt",
+ "meson.build"
+ ],
+ "name": "suboptions",
+ "version": null,
+ "descriptive_name": "suboptions",
+ "subprojects": [
+ {
+ "buildsystem_files": [
+ "subprojects/subproject/meson_options.txt",
+ "subprojects/subproject/meson.build"
+ ],
+ "name": "subproject",
+ "version": "undefined",
+ "descriptive_name": "subproject"
+ }
+ ]
+}
+```
+
+Both usages now include a new `descriptive_name` property which always
+shows the name set in the project.
+
+## Can specify keyword arguments with a dictionary
+
+You can now specify keyword arguments for any function and method call
+with the `kwargs` keyword argument. This is perhaps best described
+with an example:
+
+```meson
+options = {'include_directories': include_directories('inc')}
+
+...
+
+executable(...
+ kwargs: options)
+```
+
+The above code is identical to this:
+
+```meson
+executable(...
+ include_directories: include_directories('inc'))
+```
+
+That is, Meson will expand the dictionary given to `kwargs` as if the
+entries in it had been given as keyword arguments directly.
+
+Note that any individual argument can be specified either directly or
+with the `kwarg` dict but not both. If a key is specified twice, it
+is a hard error.
+
+## Manpages are no longer compressed implicitly
+
+Earlier, the `install_man` command has automatically compressed installed
+manpages into `.gz` format. This collided with manpage compression hooks
+already used by various distributions. Now, manpages are installed uncompressed
+and distributors are expected to handle compressing them according to their own
+compression preferences.
+
+## Native config files
+
+Native files are the counterpart to cross files, and allow specifying
+information about the build machine, both when cross compiling and when not.
+
+Currently the native files only allow specifying the names of binaries, similar
+to the cross file, for example:
+
+```ini
+[binaries]
+llvm-config = "/opt/llvm-custom/bin/llvm-config"
+```
+
+Will override the llvm-config used for *native* binaries. Targets for the host
+machine will continue to use the cross file.
+
+## Foreach `break` and `continue`
+
+`break` and `continue` keywords can be used inside foreach loops.
+
+```meson
+items = ['a', 'continue', 'b', 'break', 'c']
+result = []
+foreach i : items
+ if i == 'continue'
+ continue
+ elif i == 'break'
+ break
+ endif
+ result += i
+endforeach
+# result is ['a', 'b']
+```
+
+You can check if an array contains an element like this:
+```meson
+my_array = [1, 2]
+if 1 in my_array
+# This condition is true
+endif
+if 1 not in my_array
+# This condition is false
+endif
+```
+
+You can check if a dictionary contains a key like this:
+```meson
+my_dict = {'foo': 42, 'foo': 43}
+if 'foo' in my_dict
+# This condition is true
+endif
+if 42 in my_dict
+# This condition is false
+endif
+if 'foo' not in my_dict
+# This condition is false
+endif
+```
+
+## Joining paths with /
+
+Joining two paths has traditionally been done with the `join_paths` function.
+
+```meson
+joined = join_paths('foo', 'bar')
+```
+
+Now you can use the simpler notation using the `/` operator.
+
+```meson
+joined = 'foo' / 'bar'
+```
+
+This only works for strings.
+
+## Position-independent executables
+
+When `b_pie` option, or `executable()`'s `pie` keyword argument is set to
+`true`, position-independent executables are built. All their objects are built
+with `-fPIE` and the executable is linked with `-pie`. Any static library they
+link must be built with `pic` set to `true` (see `b_staticpic` option).
+
+## Deprecation warning in pkg-config generator
+
+All libraries passed to the `libraries` keyword argument of the `generate()`
+method used to be associated with that generated pkg-config file. That means
+that any subsequent call to `generate()` where those libraries appear would add
+the filebase of the `generate()` that first contained them into `Requires:` or
+`Requires.private:` field instead of adding an `-l` to `Libs:` or `Libs.private:`.
+
+This behaviour is now deprecated. The library that should be associated with
+the generated pkg-config file should be passed as first positional argument
+instead of in the `libraries` keyword argument. The previous behaviour is
+maintained but prints a deprecation warning and support for this will be removed
+in a future Meson release. If you can not create the needed pkg-config file
+without this warning, please file an issue with as much details as possible
+about the situation.
+
+For example this sample will write `Requires: liba` into `libb.pc` but print a
+deprecation warning:
+```meson
+liba = library(...)
+pkg.generate(libraries : liba)
+
+libb = library(...)
+pkg.generate(libraries : [liba, libb])
+```
+
+It can be fixed by passing `liba` as first positional argument::
+```meson
+liba = library(...)
+pkg.generate(liba)
+
+libb = library(...)
+pkg.generate(libb, libraries : [liba])
+```
+
+## Subprojects download, checkout, update command-line
+
+New command-line tool has been added to manage subprojects:
+
+- `meson subprojects download` to download all subprojects that have a wrap file.
+- `meson subprojects update` to update all subprojects to latest version.
+- `meson subprojects checkout` to checkout or create a branch in all git subprojects.
+
+## New keyword argument `is_default` to `add_test_setup()`
+
+The keyword argument `is_default` may be used to set whether the test
+setup should be used by default whenever `meson test` is run without
+the `--setup` option.
+
+```meson
+add_test_setup('default', is_default: true, env: 'G_SLICE=debug-blocks')
+add_test_setup('valgrind', env: 'G_SLICE=always-malloc', ...)
+test('mytest', exe)
+```
+
+For the example above, running `meson test` and `meson test
+--setup=default` is now equivalent.
diff --git a/docs/markdown/Release-notes-for-0.50.0.md b/docs/markdown/Release-notes-for-0.50.0.md
new file mode 100644
index 0000000..cb4fe0d
--- /dev/null
+++ b/docs/markdown/Release-notes-for-0.50.0.md
@@ -0,0 +1,17 @@
+---
+title: Release 0.50
+short-description: Release notes for 0.49 (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.
+
diff --git a/docs/markdown/snippets/buildopts_section.md b/docs/markdown/snippets/buildopts_section.md
deleted file mode 100644
index 74cf8a1..0000000
--- a/docs/markdown/snippets/buildopts_section.md
+++ /dev/null
@@ -1,14 +0,0 @@
-## New `section` key for the buildoptions introspection
-
-Meson now has a new `section` key in each build option. This allows
-IDEs to group these options similar to `meson configure`.
-
-The possible values for `section` are:
-
- - core
- - backend
- - base
- - compiler
- - directory
- - user
- - test
diff --git a/docs/markdown/snippets/ccrx_toolchain_support.md b/docs/markdown/snippets/ccrx_toolchain_support.md
deleted file mode 100644
index 6bf7e5b..0000000
--- a/docs/markdown/snippets/ccrx_toolchain_support.md
+++ /dev/null
@@ -1,16 +0,0 @@
-## CC-RX compiler for C and CPP
-
-Cross-compilation is now supported for Renesas RX targets with the CC-RX compiler.
-
-The environment path should be set properly for the CC-RX compiler executables.
-The `-cpu` option with the appropriate value should be mentioned in the cross-file as shown in the snippet below.
-
-```ini
-[properties]
-c_args = ['-cpu=rx600']
-cpp_args = ['-cpu=rx600']
-```
-
-The default extension of the executable output is `.abs`.
-Other target specific arguments to the compiler and linker will need to be added explicitly from the cross-file(`c_args`/`c_link_args`/`cpp_args`/`cpp_link_args`) or some other way.
-Refer to the CC-RX User's manual for additional compiler and linker options. \ No newline at end of file
diff --git a/docs/markdown/snippets/cmake.md b/docs/markdown/snippets/cmake.md
deleted file mode 100644
index 8848c7b..0000000
--- a/docs/markdown/snippets/cmake.md
+++ /dev/null
@@ -1,19 +0,0 @@
-## CMake `find_package` dependency backend
-
-Meson can now use the CMake `find_package` ecosystem to
-detect dependencies. Both the old-style `<NAME>_LIBRARIES`
-variables as well as imported targets are supported. Meson
-can automatically guess the correct CMake target in most
-cases but it is also possible to manually specify a target
-with the `modules` property.
-
-```meson
-# Implicitly uses CMake as a fallback and guesses a target
-dep1 = dependency('KF5TextEditor')
-
-# Manually specify one or more CMake targets to use
-dep2 = dependency('ZLIB', method : 'cmake', modules : ['ZLIB::ZLIB'])
-```
-
-CMake is automatically used after `pkg-config` fails when
-no `method` (or `auto`) was provided in the dependency options.
diff --git a/docs/markdown/snippets/compiler_argument_syntax.md b/docs/markdown/snippets/compiler_argument_syntax.md
deleted file mode 100644
index 6ae32d4..0000000
--- a/docs/markdown/snippets/compiler_argument_syntax.md
+++ /dev/null
@@ -1,22 +0,0 @@
-## new compiler method `get_argument_syntax`
-
-The compiler object now has `get_argument_syntax` method, which returns a
-string value of `gcc`, `msvc`, or an undefined value string value. This can be
-used to determine if a compiler uses gcc syntax (`-Wfoo`), msvc syntax
-(`/w1234`), or some other kind of arguments.
-
-```meson
-cc = meson.get_compiler('c')
-
-if cc.get_argument_syntax() == 'msvc'
- if cc.has_argument('/w1235')
- add_project_arguments('/w1235', language : ['c'])
- endif
-elif cc.get_argument_syntax() == 'gcc'
- if cc.has_argument('-Wfoo')
- add_project_arguments('-Wfoo', language : ['c'])
- endif
-elif cc.get_id() == 'some other compiler'
- add_project_arguments('--error-on-foo', language : ['c'])
-endif
-```
diff --git a/docs/markdown/snippets/disabler.md b/docs/markdown/snippets/disabler.md
deleted file mode 100644
index 76874f6..0000000
--- a/docs/markdown/snippets/disabler.md
+++ /dev/null
@@ -1,6 +0,0 @@
-## Return `Disabler()` instead of not-found object
-
-Functions such as `dependency()`, `find_library()`, `find_program()`, and
-`python.find_installation()` have a new keyword argument: `disabler`. When set
-to `true` those functions return `Disabler()` objects instead of not-found
-objects.
diff --git a/docs/markdown/snippets/introspect_projectinfo.md b/docs/markdown/snippets/introspect_projectinfo.md
deleted file mode 100644
index 40558b8..0000000
--- a/docs/markdown/snippets/introspect_projectinfo.md
+++ /dev/null
@@ -1,35 +0,0 @@
-## `introspect --projectinfo` can now be used without configured build directory
-
-This allows IDE integration to get information about the project before the user has configured a build directory.
-
-Before you could use `meson.py introspect --projectinfo build-directory`.
-Now you also can use `meson.py introspect --projectinfo project-dir/meson.build`.
-
-The output is similiar to the output with a build directory but additionally also includes information from `introspect --buildsystem-files`.
-
-For example `meson.py introspect --projectinfo test\ cases/common/47\ subproject\ options/meson.build`
-This outputs (pretty printed for readability):
-```
-{
- "buildsystem_files": [
- "meson_options.txt",
- "meson.build"
- ],
- "name": "suboptions",
- "version": null,
- "descriptive_name": "suboptions",
- "subprojects": [
- {
- "buildsystem_files": [
- "subprojects/subproject/meson_options.txt",
- "subprojects/subproject/meson.build"
- ],
- "name": "subproject",
- "version": "undefined",
- "descriptive_name": "subproject"
- }
- ]
-}
-```
-
-Both usages now include a new `descriptive_name` property which always shows the name set in the project.
diff --git a/docs/markdown/snippets/kwargdict.md b/docs/markdown/snippets/kwargdict.md
deleted file mode 100644
index 509a3e7..0000000
--- a/docs/markdown/snippets/kwargdict.md
+++ /dev/null
@@ -1,28 +0,0 @@
-## Can specify keyword arguments with a dictionary
-
-You can now specify keyword arguments for any function and method call
-with the `kwargs` keyword argument. This is perhaps best described
-with an example:
-
-```meson
-options = {'include_directories': include_directories('inc')}
-
-...
-
-executable(...
- kwargs: options)
-```
-
-The above code is identical to this:
-
-```meson
-executable(...
- include_directories: include_directories('inc'))
-```
-
-That is, Meson will expand the dictionary given to `kwargs` as if the
-entries in it had been given as keyword arguments directly.
-
-Note that any individual argument can be specified either directly or
-with the `kwarg` dict but not both. If a key is specified twice, it
-is a hard error.
diff --git a/docs/markdown/snippets/manpage_compression.md b/docs/markdown/snippets/manpage_compression.md
deleted file mode 100644
index 8c96807..0000000
--- a/docs/markdown/snippets/manpage_compression.md
+++ /dev/null
@@ -1,7 +0,0 @@
-## Manpages are no longer compressed implicitly
-
-Earlier, the `install_man` command has automatically compressed installed
-manpages into `.gz` format. This collided with manpage compression hooks
-already used by various distributions. Now, manpages are installed uncompressed
-and distributors are expected to handle compressing them according to their own
-compression preferences.
diff --git a/docs/markdown/snippets/native_files.md b/docs/markdown/snippets/native_files.md
deleted file mode 100644
index 7bc3644..0000000
--- a/docs/markdown/snippets/native_files.md
+++ /dev/null
@@ -1,15 +0,0 @@
-## Native config files
-
-Native files are the counterpart to cross files, and allow specifying
-information about the build machine, both when cross compiling and when not.
-
-Currently the native files only allow specifying the names of binaries, similar
-to the cross file, for example:
-
-```ini
-[binaries]
-llvm-config = "/opt/llvm-custom/bin/llvm-config"
-```
-
-Will override the llvm-config used for *native* binaries. Targets for the host
-machine will continue to use the cross file.
diff --git a/docs/markdown/snippets/new_syntax.md b/docs/markdown/snippets/new_syntax.md
deleted file mode 100644
index 98eccd0..0000000
--- a/docs/markdown/snippets/new_syntax.md
+++ /dev/null
@@ -1,42 +0,0 @@
-## Foreach `break` and `continue`
-
-`break` and `continue` keywords can be used inside foreach loops.
-
-```meson
-items = ['a', 'continue', 'b', 'break', 'c']
-result = []
-foreach i : items
- if i == 'continue'
- continue
- elif i == 'break'
- break
- endif
- result += i
-endforeach
-# result is ['a', 'b']
-```
-
-You can check if an array contains an element like this:
-```meson
-my_array = [1, 2]
-if 1 in my_array
-# This condition is true
-endif
-if 1 not in my_array
-# This condition is false
-endif
-```
-
-You can check if a dictionary contains a key like this:
-```meson
-my_dict = {'foo': 42, 'foo': 43}
-if 'foo' in my_dict
-# This condition is true
-endif
-if 42 in my_dict
-# This condition is false
-endif
-if 'foo' not in my_dict
-# This condition is false
-endif
-```
diff --git a/docs/markdown/snippets/pathdivision.md b/docs/markdown/snippets/pathdivision.md
deleted file mode 100644
index 6da6005..0000000
--- a/docs/markdown/snippets/pathdivision.md
+++ /dev/null
@@ -1,15 +0,0 @@
-## Joining paths with /
-
-Joining two paths has traditionally been done with the `join_paths` function.
-
-```meson
-joined = join_paths('foo', 'bar')
-```
-
-Now you can use the simpler notation using the `/` operator.
-
-```meson
-joined = 'foo' / 'bar'
-```
-
-This only works for strings.
diff --git a/docs/markdown/snippets/pie.md b/docs/markdown/snippets/pie.md
deleted file mode 100644
index a9be174..0000000
--- a/docs/markdown/snippets/pie.md
+++ /dev/null
@@ -1,6 +0,0 @@
-## Position-independent executables
-
-When `b_pie` option, or `executable()`'s `pie` keyword argument is set to
-`true`, position-independent executables are built. All their objects are built
-with `-fPIE` and the executable is linked with `-pie`. Any static library they
-link must be built with `pic` set to `true` (see `b_staticpic` option).
diff --git a/docs/markdown/snippets/pkgconfig_break.md b/docs/markdown/snippets/pkgconfig_break.md
deleted file mode 100644
index 49c908d..0000000
--- a/docs/markdown/snippets/pkgconfig_break.md
+++ /dev/null
@@ -1,34 +0,0 @@
-## Deprecation warning in pkg-config generator
-
-All libraries passed to the `libraries` keyword argument of the `generate()`
-method used to be associated with that generated pkg-config file. That means
-that any subsequent call to `generate()` where those libraries appear would add
-the filebase of the `generate()` that first contained them into `Requires:` or
-`Requires.private:` field instead of adding an `-l` to `Libs:` or `Libs.private:`.
-
-This behaviour is now deprecated. The library that should be associated with
-the generated pkg-config file should be passed as first positional argument
-instead of in the `libraries` keyword argument. The previous behaviour is
-maintained but prints a deprecation warning and support for this will be removed
-in a future Meson release. If you can not create the needed pkg-config file
-without this warning, please file an issue with as much details as possible
-about the situation.
-
-For example this sample will write `Requires: liba` into `libb.pc` but print a
-deprecation warning:
-```meson
-liba = library(...)
-pkg.generate(libraries : liba)
-
-libb = library(...)
-pkg.generate(libraries : [liba, libb])
-```
-
-It can be fixed by passing `liba` as first positional argument::
-```meson
-liba = library(...)
-pkg.generate(liba)
-
-libb = library(...)
-pkg.generate(libb, libraries : [liba])
-```
diff --git a/docs/markdown/snippets/subprojects_cmd.md b/docs/markdown/snippets/subprojects_cmd.md
deleted file mode 100644
index 20fef5c..0000000
--- a/docs/markdown/snippets/subprojects_cmd.md
+++ /dev/null
@@ -1,7 +0,0 @@
-## Subprojects download, checkout, update command-line
-
-New command-line tool has been added to manage subprojects:
-
-- `meson subprojects download` to download all subprojects that have a wrap file.
-- `meson subprojects update` to update all subprojects to latest version.
-- `meson subprojects checkout` to checkout or create a branch in all git subprojects.
diff --git a/docs/markdown/snippets/test_setup_is_default.md b/docs/markdown/snippets/test_setup_is_default.md
deleted file mode 100644
index 2274dc9..0000000
--- a/docs/markdown/snippets/test_setup_is_default.md
+++ /dev/null
@@ -1,14 +0,0 @@
-## New keyword argument `is_default` to `add_test_setup()`
-
-The keyword argument `is_default` may be used to set whether the test
-setup should be used by default whenever `meson test` is run without
-the `--setup` option.
-
-```meson
-add_test_setup('default', is_default: true, env: 'G_SLICE=debug-blocks')
-add_test_setup('valgrind', env: 'G_SLICE=always-malloc', ...)
-test('mytest', exe)
-```
-
-For the example above, running `meson test` and `meson test
---setup=default` is now equivalent.
diff --git a/docs/sitemap.txt b/docs/sitemap.txt
index f79eb05..b8c41b4 100644
--- a/docs/sitemap.txt
+++ b/docs/sitemap.txt
@@ -70,6 +70,7 @@ index.md
Shipping-prebuilt-binaries-as-wraps.md
fallback-wraptool.md
Release-notes.md
+ Release-notes-for-0.50.0.md
Release-notes-for-0.49.0.md
Release-notes-for-0.48.0.md
Release-notes-for-0.47.0.md
diff --git a/man/meson.1 b/man/meson.1
index a171b0b..702ac4d 100644
--- a/man/meson.1
+++ b/man/meson.1
@@ -1,4 +1,4 @@
-.TH MESON "1" "September 2018" "meson 0.48.0" "User Commands"
+.TH MESON "1" "December 2018" "meson 0.49.0" "User Commands"
.SH NAME
meson - a high productivity build system
.SH DESCRIPTION
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py
index e5bb959..de401ce 100644
--- a/mesonbuild/coredata.py
+++ b/mesonbuild/coredata.py
@@ -25,7 +25,7 @@ import ast
import argparse
import configparser
-version = '0.48.999'
+version = '0.49.0'
backendlist = ['ninja', 'vs', 'vs2010', 'vs2015', 'vs2017', 'xcode']
default_yielding = False