aboutsummaryrefslogtreecommitdiff
path: root/docs/markdown/Release-notes-for-0.43.0.md
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-10-08 22:35:27 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2017-10-08 22:36:06 +0300
commit683947d9436b37041cf0bb6b02ed23e982be225f (patch)
treedd11c7446ba3bcc7c5460ce7234f072cca688ff8 /docs/markdown/Release-notes-for-0.43.0.md
parent93aa32219fec2d559ae45747f67ba17a0de06002 (diff)
downloadmeson-683947d9436b37041cf0bb6b02ed23e982be225f.zip
meson-683947d9436b37041cf0bb6b02ed23e982be225f.tar.gz
meson-683947d9436b37041cf0bb6b02ed23e982be225f.tar.bz2
Collated release note snippets to main file.
Diffstat (limited to 'docs/markdown/Release-notes-for-0.43.0.md')
-rw-r--r--docs/markdown/Release-notes-for-0.43.0.md109
1 files changed, 102 insertions, 7 deletions
diff --git a/docs/markdown/Release-notes-for-0.43.0.md b/docs/markdown/Release-notes-for-0.43.0.md
index 0cb8cc1..074ff38 100644
--- a/docs/markdown/Release-notes-for-0.43.0.md
+++ b/docs/markdown/Release-notes-for-0.43.0.md
@@ -3,14 +3,109 @@ title: Release 0.43
short-description: Release notes for 0.43 (preliminary)
...
-# New features
+# Portability improvements to Boost Dependency
-This page is a placeholder for the eventual release notes.
+The Boost dependency has been improved to better detect the various ways to
+install boost on multiple platforms. At the same time the `modules` semantics
+for the dependency has been changed. Previously it was allowed to specify
+header directories as `modules` but it wasn't required. Now, modules are only
+used to specify libraries that require linking.
-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:
+This is a breaking change and the fix is to remove all modules that aren't
+found.
- # Feature name
+# Generator learned capture
- A short description explaining the new feature and how it should be used.
+Generators can now be configured to capture the standard output. See
+`test cases/common/98 gen extra/meson.build` for an example.
+
+# Can index CustomTaget objects
+
+The `CustomTarget` object can now be indexed like an array. The resulting
+object can be used as a source file for other Targets, this will create a
+dependency on the original `CustomTarget`, but will only insert the generated
+file corresponding to the index value of the `CustomTarget`'s `output` keyword.
+
+ c = CustomTarget(
+ ...
+ output : ['out.h', 'out.c'],
+ )
+ lib1 = static_library(
+ 'lib1',
+ [lib1_sources, c[0]],
+ ...
+ )
+ exec = executable(
+ 'executable',
+ c[1],
+ link_with : lib1,
+ )
+
+# Can override executables in the cross file
+
+The cross file can now be used for overriding the result of
+`find_program`. As an example if you want to find the `objdump`
+command and have the following definition in your cross file:
+
+ [binaries]
+ ...
+ objdump = '/usr/bin/arm-linux-gnueabihf-objdump-6'
+
+Then issuing the command `find_program('objdump')` will return the
+version specified in the cross file. If you need the build machine's
+objdump, you can specify the `native` keyword like this:
+
+ native_objdump = find_program('objdump', native : true)
+
+# Easier handling of supported compiler arguments
+
+A common pattern for handling multiple desired compiler arguments, was to
+test their presence and add them to an array one-by-one, e.g.:
+
+ warning_flags_maybe = [
+ '-Wsomething',
+ '-Wanother-thing',
+ '-Wno-the-other-thing',
+ ]
+ warning_flags = []
+ foreach flag : warning_flags_maybe
+ if cc.has_argument(flag)
+ warning_flags += flag
+ endif
+ endforeach
+ cc.add_project_argument(warning_flags)
+
+A helper has been added for the foreach/has_argument pattern, so you can
+now simply do:
+
+ warning_flags = [ ... ]
+ flags = cc.get_supported_flags(warning_flags)
+
+# Better support for shared libraries in non-system paths
+
+Meson has had support for prebuilt object files and static libraries.
+This release adds feature parity to shared libraries that are either
+in non-standard system paths or shipped as part of your project. On
+systems that support rpath, Meson automatically adds rpath entries
+to built targets using manually found external libraries.
+
+This means that e.g. supporting prebuilt libraries shipped with your
+source or provided by subprojects or wrap definitions by writing a
+build file like this:
+
+ project('myprebuiltlibrary', 'c')
+
+ cc = meson.get_compiler('c')
+ prebuilt = cc.find_library('mylib', dirs : meson.current_source_dir())
+ mydep = declare_dependency(include_directories : include_directories('.'),
+ dependencies : prebuilt)
+
+Then you can use the dependency object in the same way as any other.
+
+# wrap-svn
+
+The [Wrap dependency system](Wrap-dependency-system-manual.md) now
+supports [Subversion](https://subversion.apache.org/) (svn). This
+support is rudimentary. The repository url has to point to a specific
+(sub)directory containing the `meson.build` file (typically
+`trunk/`). However, providing a `revision` is supported.