介子构建系统版本 1.6.0

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

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

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

Meson 1.6的主要创新点:

  • 添加了“meson reprotest”命令来测试可重现的构建。
  • 添加了对 LLVM 项目开发的 flang 编译器的支持。
  • 增加了对 DIA(调试接口访问)SDK 的支持,该 SDK 允许以平台使用的 PDB 格式读取调试信息。 Windows.
  • NVIDIA 的 nvc 和 nvc++ 编译器提供选择 C ​​和 C++ 标准的功能。在 nvc 中:c89、c90、c99、c11、c17、c18、gnu90、gnu89、gnu99、gnu11、gnu17、gnu18。在 nvc++ 中:c++98、c++03、c++11、c++14、c++17、c++20、c++23、gnu++98、gnu++03、gnu++ 11、gnu++14、gnu++17、gnu++20。
  • 提供了通过在导入的 Qt 构建模块上调用 has_tools() 函数来确定 Qt 特定实用程序(moc、uic、rcc 和 lrelease)是否存在的能力。
  • 已经实现了在 AIX 平台上使用 OpenXL 编译器的能力(除了之前支持的 GCC 之外)。
  • 默认情况下,如果正在构建的项目的 project() 函数未指定 Meson 的最低版本,则会启用有关所有已弃用功能的警告。
  • 添加了对在系统依赖项中使用变量的支持(在 get_variable() 方法中)。
  • 添加了关于 Cargo 子项目支持的实验性质的警告。
  • 从 CMake 子项目派生的依赖项现在只允许在 CMake 中使用标记为 PUBLIC 或 INTERFACE 的链接标志(标记为 PRIVATE 的标志仅在构建子项目的库时适用,而不是用作依赖项时)。
  • 添加了选项default_both_libraries以覆盖both_libraries构建目标的默认行为。
  • 对于由declare_dependency()函数返回的内部依赖项,实现as_static和as_shared方法来转换依赖项列表以考虑静态或动态绑定。
  • 在 test() 和 benchmark() 函数中,添加了确定正在测试的可执行文件是调用其他程序的包装器的功能。例如: test('some_test', find_program('sudo'), args : [ find_program('sh'), 'script.sh' ])
  • 添加了对使用 C/C++ 编译器前端而不是 Clang 的支持,在 Zig 0.11 语言工具包中提供。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster