Skip to content

Commit 4c6c89c

Browse files
committed
Update docs and version number for release.
1 parent fbeedf4 commit 4c6c89c

18 files changed

+177
-153
lines changed
Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
---
2+
title: Release 1.6.0
3+
short-description: Release notes for 1.6.0
4+
...
5+
6+
# New features
7+
8+
Meson 1.6.0 was released on 20 October 2024
9+
## Support for OpenXL compiler in AIX.
10+
11+
The OpenXL compiler is now supported from Meson 1.6.0 onwards.
12+
So currently, in AIX Operating system we support GCC and openXL compilers for Meson build system.
13+
14+
Both the compilers will archive shared libraries and generate a shared object
15+
for a shared module while using Meson in AIX.
16+
17+
## `alias_target` of `both_libraries`
18+
19+
Previously, when passing a [[@both_libs]] object to [[alias_target]], the alias
20+
would only point to the shared library. It now points to both the static and the
21+
shared library.
22+
23+
## Default to printing deprecations when no minimum version is specified.
24+
25+
For a long time, the [[project]] function has supported specifying the minimum
26+
`meson_version:` needed by a project. When this is used, deprecated features
27+
from before that version produce warnings, as do features which aren't
28+
available in all supported versions.
29+
30+
When no minimum version was specified, meson didn't warn you even about
31+
deprecated functionality that might go away in an upcoming semver major release
32+
of meson.
33+
34+
Now, meson will treat an unspecified minimum version following semver:
35+
36+
- For new features introduced in the current meson semver major cycle
37+
(currently: all features added since 1.0) a warning is printed. Features that
38+
have been available since the initial 1.0 release are assumed to be widely
39+
available.
40+
41+
- For features that have been deprecated by any version of meson, a warning is
42+
printed. Since no minimum version was specified, it is assumed that the
43+
project wishes to follow the latest and greatest functionality.
44+
45+
These warnings will overlap for functionality that was both deprecated and
46+
replaced with an alternative in the current release cycle. The combination
47+
means that projects without a minimum version specified are assumed to want
48+
broad compatibility with the current release cycle (1.x).
49+
50+
Projects that specify a minimum `meson_version:` will continue to only receive
51+
actionable warnings based on their current minimum version.
52+
53+
## Cargo subprojects is experimental
54+
55+
Cargo subprojects was intended to be experimental with no stability guarantees.
56+
That notice was unfortunately missing from documentation. Meson will now start
57+
warning about usage of experimental features and future releases might do breaking
58+
changes.
59+
60+
This is aligned with our general policy regarding [mixing build systems](Mixing-build-systems.md).
61+
62+
## Dependencies from CMake subprojects now use only PUBLIC link flags
63+
64+
Any [[@dep]] obtained from a CMake subproject (or `.wrap` with `method = cmake`)
65+
now only includes link flags marked in CMake as `PUBLIC` or `INTERFACE`.
66+
Flags marked as `PRIVATE` are now only applied when building the subproject
67+
library and not when using it as a dependency. This better matches how CMake
68+
handles link flags and fixes link errors when using some CMake projects as
69+
subprojects.
70+
71+
## New built-in option for default both_libraries
72+
73+
`both_libraries` targets used to be considered as a shared library by default.
74+
There is now the `default_both_libraries` option to change this default.
75+
76+
When `default_both_libraries` is 'auto', [[both_libraries]] with dependencies
77+
that are [[@both_libs]] themselves will link with the same kind of library.
78+
For example, if `libA` is a [[@both_libs]] and `libB` is a [[@both_libs]]
79+
linked with `libA` (or with an internal dependency on `libA`),
80+
the static lib of `libB` will link with the static lib of `libA`, and the
81+
shared lib of `libA` will link with the shared lib of `libB`.
82+
83+
## New `as_static` and `as_shared` methods on internal dependencies
84+
85+
[[@dep]] object returned by [[declare_dependency]] now has `.as_static()` and
86+
`.as_shared()` methods, to convert to a dependency that prefers the `static`
87+
or the `shared` version of the linked [[@both_libs]] target.
88+
89+
When the same dependency is used without those methods, the
90+
`default_both_libraries` option determines which version is used.
91+
92+
## Support for DIA SDK
93+
94+
Added support for Windows Debug Interface Access SDK (DIA SDK) dependency. It allows reading with MSVC debugging information (.PDB format). This dependency can only be used on Windows, with msvc, clang or clang-cl compiler.
95+
96+
## Support for LLVM-based flang compiler
97+
98+
Added basic handling for the [flang](https://flang.llvm.org/docs/) compiler
99+
that's now part of LLVM. It is the successor of another compiler named
100+
[flang](https://github.com/flang-compiler/flang) by largely the same
101+
group of developers, who now refer to the latter as "classic flang".
102+
103+
Meson already supports classic flang, and the LLVM-based flang now
104+
uses the compiler-id `'llvm-flang'`.
105+
106+
## nvc and nvc++ now support setting std
107+
108+
The following standards are available for nvc: c89, c90, c99, c11,
109+
c17, c18, gnu90, gnu89, gnu99, gnu11, gnu17, gnu18. For nvc++:
110+
c++98, c++03, c++11, c++14, c++17, c++20, c++23, gnu++98, gnu++03,
111+
gnu++11, gnu++14, gnu++17, gnu++20
112+
113+
## Tools can be selected when calling `has_tools()` on the Qt modules
114+
115+
When checking for the presence of Qt tools, you can now explictly ask Meson
116+
which tools you need. This is particularly useful when you do not need
117+
`lrelease` because you are not shipping any translations. For example:
118+
119+
```meson
120+
qt6_mod = import('qt6')
121+
qt6_mod.has_tools(required: true, tools: ['moc', 'uic', 'rcc'])
122+
```
123+
124+
valid tools are `moc`, `uic`, `rcc` and `lrelease`.
125+
126+
## Simple tool to test build reproducibility
127+
128+
Meson now ships with a command for testing whether your project can be
129+
[built reprodicibly](https://reproducible-builds.org/). It can be used
130+
by running a command like the following in the source root of your
131+
project:
132+
133+
meson reprotest --intermediaries -- --buildtype=debugoptimized
134+
135+
All command line options after the `--` are passed to the build
136+
invocations directly.
137+
138+
This tool is not meant to be exhaustive, but instead easy and
139+
convenient to run. It will detect some but definitely not all
140+
reproducibility issues.
141+
142+
## Support for variable in system dependencies
143+
144+
System Dependency method `get_variable()` now supports `system` variable.
145+
146+
## test() and benchmark() functions accept new types
147+
148+
`test` and `benchmark` now accept ExternalPrograms (as returned by
149+
`find_program`) in the `args` list. This can be useful where the test
150+
executable is a wrapper which invokes another program given as an
151+
argument.
152+
153+
```meson
154+
test('some_test', find_program('sudo'), args : [ find_program('sh'), 'script.sh' ])
155+
```
156+
157+
## Zig 0.11 can be used as a C/C++ compiler frontend
158+
159+
Zig offers
160+
[a C/C++ frontend](https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html) as a drop-in replacement for Clang. It worked fine with Meson up to Zig 0.10. Since 0.11, Zig's
161+
dynamic linker reports itself as `zig ld`, which wasn't known to Meson. Meson now correctly handles
162+
Zig's linker.
163+
164+
You can use Zig's frontend via a [machine file](Machine-files.md):
165+
166+
```ini
167+
[binaries]
168+
c = ['zig', 'cc']
169+
cpp = ['zig', 'c++']
170+
ar = ['zig', 'ar']
171+
ranlib = ['zig', 'ranlib']
172+
lib = ['zig', 'lib']
173+
dlltool = ['zig', 'dlltool']
174+
```
175+

docs/markdown/snippets/add_support_for_ibm_clang_for_AIX.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

docs/markdown/snippets/alias_target_of_both_libraries.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

docs/markdown/snippets/always_report_deprecations.md

Lines changed: 0 additions & 29 deletions
This file was deleted.

docs/markdown/snippets/cargo_exp.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

docs/markdown/snippets/cmake_only_public_link_flags_in_dep.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

docs/markdown/snippets/default_both_libraries.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

docs/markdown/snippets/dep_as_shared_as_static.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

docs/markdown/snippets/dia_sdk.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

docs/markdown/snippets/llvm_flang.md

Lines changed: 0 additions & 9 deletions
This file was deleted.

docs/markdown/snippets/nvc_now_support_setting_std.md

Lines changed: 0 additions & 6 deletions
This file was deleted.

docs/markdown/snippets/qt_has_tools_ignore.md

Lines changed: 0 additions & 12 deletions
This file was deleted.

docs/markdown/snippets/reprotester.md

Lines changed: 0 additions & 15 deletions
This file was deleted.

docs/markdown/snippets/system_variable_in_dep.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

docs/markdown/snippets/test_args_accepts_external_program.md

Lines changed: 0 additions & 10 deletions
This file was deleted.

docs/markdown/snippets/zig_ld.md

Lines changed: 0 additions & 18 deletions
This file was deleted.

docs/sitemap.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ index.md
8888
Wrap-best-practices-and-tips.md
8989
Shipping-prebuilt-binaries-as-wraps.md
9090
Release-notes.md
91+
Release-notes-for-1.6.0.md
9192
Release-notes-for-1.5.0.md
9293
Release-notes-for-1.4.0.md
9394
Release-notes-for-1.3.0.md

mesonbuild/coredata.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ class SharedCMDOptions(Protocol):
7474
#
7575
# Pip requires that RCs are named like this: '0.1.0.rc1'
7676
# But the corresponding Git tag needs to be '0.1.0rc1'
77-
version = '1.6.0.rc2'
77+
version = '1.6.0'
7878

7979
# The next stable version when we are in dev. This is used to allow projects to
8080
# require meson version >=1.2.0 when using 1.1.99. FeatureNew won't warn when

0 commit comments

Comments
 (0)