介子构建系统版本 1.1

Meson 1.1.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.1的主要创新点:

  • declare_dependency() 中添加了新的“objects:”参数,以不需要使用 link_who 的内部依赖项的形式将对象直接附加到可执行文件。
  • “meson devenv -dump”命令现在可以选择指定一个文件来写入环境变量,而不是将其打印到标准输出。
  • 添加了FeatureOption.enable_if和FeatureOption.disable_if方法,以便更轻松地创建条件,准备将参数传递给dependency()函数。 opt = get_option('feature').disable_if(not foo, error_message : '当 foo 未启用时无法启用功能') dep = dependency('foo', required : opt)
  • 允许将生成的对象作为参数传递给“objects:”。
  • 项目功能现在支持安装包含项目许可证信息的文件。
  • 运行“sudo meson install”可确保在目标平台重建期间重置权限。
  • “meson install”命令提供了指定单独的处理程序来获取 root 权限的功能(例如,您可以选择 polkit、sudo、opendoas 或 $MESON_ROOT_CMD)。 在非交互模式下运行“介子安装”不再尝试升级权限。
  • 添加了对从 meson.options 文件而不是 meson_options.txt 读取选项的支持。
  • 提供了将有关自省进度的信息重定向到 stderr 的功能。
  • 添加了新的“无”后端(--backend=none)来创建仅具有安装规则而没有构建规则的项目。
  • 添加了新的依赖项 pybind11,允许 dependency('pybind11') 与 pkg-config 和 cmake 一起使用,而无需使用 pybind11-config 脚本。
  • 允许使用“--reconfigure”和“--wipe”选项(meson setup --reconfigure builddir 和 meson setup --wipe builddir )且 builddir 为空。
  • 向 meson.add_install_script() 添加了对 dry_run 关键字的支持,以允许在调用“meson install --dry-run”时运行您自己的安装脚本。

来源: opennet.ru

添加评论