发布 Meson 0.58 组装系统。 用 C 语言创建 Meson 实现的项目

Meson 0.58构建系统已经发布,用于构建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 0.58的主要创新点:

  • Meson 具有内置的字符串格式化操作。 现在您可以直接替换值,而不是调用 format 方法,例如,您可以立即指定“f”,而不是“'A string @0@ to be formatted @1@'.format(n, m)”要格式化的字符串@n@ @ m@'"。
  • 字符串对象中添加了“replace”方法,用于执行将一个子字符串替换为另一个子字符串的操作,例如“s = s.replace('aaa', 'bbb')”。
  • 添加了“range(start, stop[, step])”函数以返回可在 foreach 循环中使用的对象,例如“foreach i : range(15)”。
  • 已实现 meson.add_devenv() 方法,允许您在使用“meson devenv”命令时添加environment()对象来设置环境变量,例如设置插件目录路径的环境变量。
  • 对于开发环境,提出了一个新命令:“meson devenv -C builddir [<command>],这使得可以在配置为从构建目录启动项目的环境中运行该命令(无需安装)。
  • 默认情况下,运行所有支持的编译器时将停止传递“-pipe”选项。
  • 允许从子项目调用 meson.add_dist_script() 。
  • 提供了在同一个environment()对象上多次运行append()和prepend()方法的能力。
  • error() 函数允许多个参数,以空格分隔(类似于 warning() 和 message())。
  • 添加了“--skip-subprojects”选项以有选择地跳过子项目的安装。

另外,我们可以注意到 Boson 项目,旨在创建 Meson 汇编脚本语言的可移植且简单的实现,用 C 而不是 Python 编写。 该项目仍处于开发的初始阶段,尚未准备好全面组装工作项目。 该代码根据 GPLv3 获得许可(原始 Python Meson 根据 Apache 2.0 许可证获得许可)。

来源: opennet.ru

添加评论