介子构建系统版本 1.0

Meson 1.0.0构建系统已经发布,用于构建X.Org Server、Mesa、Lighttpd、systemd、GStreamer、Wayland、GNOME和GTK等项目。 Meson 的代码是用 Python 编写的,并根据 Apache 2.0 许可证获得许可。

Meson 开发的主要目标是提供高速的组装过程以及便利性和易用性。 构建时默认使用 Ninja 工具包而不是 make 实用程序,但也可以使用其他后端,例如 xcode 和 VisualStudio。 系统有一个内置的多平台依赖处理程序,允许您使用 Meson 构建分发包。 汇编规则以简化的特定于域的语言指定,对于用户来说具有高度的可读性和可理解性(正如作者的意图,开发人员应该花费最少的时间编写规则)。

支持使用 GCC、Clang、Visual Studio 和其他编译器在 Linux、Illumos/Solaris、FreeBSD、NetBSD、DragonFly BSD、Haiku、macOS 和 Windows 上交叉编译和构建。 可以使用各种编程语言构建项目,包括 C、C++、Fortran、Java 和 Rust。 支持增量构建模式,其中仅重建与上次构建以来所做的更改直接相关的组件。 Meson 可用于生成可重复的构建,其中在不同的环境中运行构建会生成完全相同的可执行文件。

Meson 1.0的主要创新点:

  • 用于用 Rust 语言构建项目的模块已被宣布稳定。 该模块在 Mesa 项目中用于构建用 Rust 编写的组件。
  • 大多数编译器检查函数都支持前缀选项,除了字符串之外,它还提供了处理数组的能力。 例如,您现在可以指定: cc.check_header('GL/wglew.h', prefix : ['#include ', '#包括'])
  • 添加了新参数“--workdir”以允许覆盖工作目录。 例如,要使用当前目录而不是工作目录,可以运行: meson devenv -C builddir --workdir 。
  • 已经提出了新的运算符“in”和“not in”来确定字符串中子字符串的出现,类似于以前可用的检查数组或字典中元素是否出现的方法。 例如: fs = import('fs') if 'something' in fs.read('somefile') # True endif
  • 添加了“warning-level=everything”选项,该选项打开所有可用编译器警告的输出(在 clang 和 MSVC 中它使用 -Weverything 和 /Wall,而在 GCC 中则单独包含警告,大致对应于 -Weverything clang 模式)。
  • rust.bindgen 方法实现了处理“依赖项”参数以传递应由编译器处理的依赖项路径的功能。
  • java.generate_native_headers 函数已被弃用并重命名为 java.native_headers 以符合 Meson 的通用函数命名风格。

来源: opennet.ru

添加评论