项目 介子 发布了一个版本 1.11.0发布会举行 4月13 2026年 并持续开发着许多领域中最杰出的自由构建系统之一。 Linux 以及跨平台项目。
Meson 传统上强调高速、可预测的构建描述和相对简单的 DSL,而新版本主要侧重于针对实际开发场景的实用改进。
Meson 1.11.0 的主要变化:
- 支持在 Rust 模块中通过 workspace() 解析顶级 Cargo.toml 文件;
- 支持 Rust 的 link_args、add_project_link_arguments() 和 add_global_link_arguments();
- Rust 模块中新增 compiler_target() 方法;
- Cython不再需要显式包含C或C++;
- 新增参数 link_early_args,用于更早地将选项传递给链接器;
- meson dist 获得了对 -j/--num-processes 的支持;
- install_man 和 install_headers 现在支持 install_tag;
- OpenMP 去重链接器参数;
- 自动检测 QT_DEBUG 和 QT_NO_DEBUG;
- 改进 Windows-环境和rc.exe。
最显著的变化之一是 锈Meson 1.11.0 现在会在 Rust 模块中调用 `workspace()` 时解析顶层 Cargo.toml 文件,从而可以根据 Cargo 工作区配置解析依赖项和功能标志。这显著提升了与 Rust 项目的集成:返回的工作区对象允许检索 Cargo 子项目的依赖项和功能信息,以及构建 Cargo.toml 中描述的目标。
开发者还扩展了 Meson 在链接过程中对 Rust 的支持。从 1.11.0 版本开始,Meson 支持通过 rustc 和 `-Clink-arg=` 包装器传递的 `add_project_link_arguments()`、`add_global_link_arguments()` 和 `link_args` 参数来支持 Rust。此外,Rust 模块现在新增了 `compiler_target()` 方法,该方法返回编译器的目标三元组,从而简化了之前与 Cargo 变量(例如 `TARGET` 和 `HOST`)绑定的脚本的移植。
另一项实际变化影响 赛顿现在您不再需要显式启用语言即可使用它。 C или C + +中Meson 明确指出,这些语言仅作为 Cython 的内部实现细节添加,而非作为并行构建常规原生 C/C++ 目标的完整方法。对用户而言,这主要简化了构建配置。
此次发布还包含一些改进,旨在提供对链接和安装更精细的控制。链接目标现在新增了一个 `link_early_args` 参数,允许您在对象和库之前将选项传递给链接器——这对于像 `-u` 或 `--defsym` 这样对顺序敏感的选项至关重要。`Install_man` 和 `install_headers` 也新增了对 `install_tag` 的支持,从而可以通过 `meson install --tags` 更灵活地管理已安装的文件。
构建支持工具的开发也值得关注。meson dist 命令现在支持 -j 和 --num-processes 参数,允许您在检查发行版时控制并行进程数。同时,Meson 已开始对 OpenMP 链接器参数(例如 -fopenmp 和 -qopenmp)进行去重,并且 Qt 模块现在会根据构建模式自动检测 QT_DEBUG 或 QT_NO_DEBUG 宏,使其行为更接近 qmake。
此外,针对特定平台场景的兼容性也发生了变化。在 external_project 模块中 Windows 现在,在 MSYS2 和 Cygwin 等环境中运行配置脚本时,Cygpath 可以正确地将路径转换为 Unix 格式。此外,windows.compile_resources 现在可以在使用 rc.exe 时跟踪头文件更改,从而绕过了该资源编译器长期存在的限制。
在一般情况下, 介子1.11.0 此次版本发布并非革命性的变革,但其中包含大量重要的工程改进。其主要目标是使构建系统对现代混合语言项目更加友好,尤其是那些结合了 Rust、Cython、Qt 和传统 C/C++ 组件的项目。对于开发者而言,这并非重写基础架构的理由,而是对长期以来已成为日常开源技术栈一部分的工具进行的一次谨慎而实用的更新。
来源: linux.org.ru
