介子构建系统版本 0.51

发表 构建系统发布 介子0.51,用于构建 X.Org Server、Mesa、Lighttpd、systemd、GStreamer、Wayland、GNOME 和 GTK+ 等项目。 介子代码是用 Python 编写的 提供 在 Apache 2.0 下获得许可。

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

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

创新 介子0.51:

  • 添加了对使用 CMake 构建脚本的现有项目的透明构建的支持。 Meson现在可以使用CMake模块直接构建简单的子项目(例如单个库),类似于标准子项目(其中CMake子项目可以放在子项目目录中);
  • 对于所有使用的编译器,通过组装和执行简单的测试文件(健全性检查)来进行初步测试,不仅限于测试用户指定的交叉编译器标志(从现在开始,还检查当前平台本机的编译器) 。
  • 添加了定义交叉编译期间使用的命令行选项的功能,并通过在选项前指定平台前缀进行绑定。 以前,命令行选项仅涵盖本机构建,无法指定交叉编译。 现在,无论您是进行本机编译还是交叉编译,命令行选项都适用,确保本机和交叉编译产生相同的结果;
  • 添加了在命令行上多次指定“--cross-file”标志以列出多个跨文件的功能;
  • 增加了对 Windows 平台 ICL 编译器(Intel C/C++ 编译器)的支持(ICL.EXE 和 ifort);
  • 添加了对 CPU Xtensa(xt-xcc、xt-xc++、xt-nm)的初始工具包支持;
  • “dependency”对象中添加了“get_variable”方法,它允许您获取变量的值,而无需考虑当前依赖项的类型(例如, dep.get_variable(pkg-config : 'var-名称', cmake : 'COP_VAR_NAME));
  • 添加了新的目标程序集选项参数“link_language”,以显式指定调用链接器时使用的语言。 例如,主 Fortran 程序可以调用 C/C++ 代码,当应使用 Fortran 链接器时,它会自动选择 C/C++;
  • CPPFLAGS 预处理器标志的处理已更改。 Meson 之前分别存储了 CPPFLAGS 和特定于语言的编译标志(CFLAGS、CXXFLAGS),现在它们被分开处理,并且 CPPFLAGS 中列出的标志被用作支持它们的语言的编译标志的另一个来源;
  • custom_target 和 custom_target[i] 的输出现在可以用作 link_with 和 link_whole 操作中的参数;
  • 生成器现在能够使用“depends”选项指定其他依赖项(例如,generator(program_runner, output: ['@[电子邮件保护]'],取决于:exe));
  • 为 find_library 添加了 static 选项,以允许搜索仅包含静态链接库;
  • 对于 python.find_installation,添加了确定特定 Python 版本的给定 Python 模块是否存在的功能;
  • 添加了新模块unstable-kconfig用于解析kconfig文件;
  • 添加了一个新命令“subprojects foreach”,该命令接受带参数的命令并在所有子项目目录中运行它;

来源: opennet.ru

添加评论