Meson 开发的主要目标是提供高速的组装过程以及便利性和易用性。 默认构建使用工具包,而不是 make 实用程序
主
- 添加了对使用 Emscripten 作为编译器的 Webassemble 的实验性支持;
- 对 Illumos 和 Solaris 平台的支持已得到显着改进并进入工作状态;
- 确保如果系统没有安装 gettext 工具包,则忽略基于 gettext 的国际化脚本(之前在没有安装 gettext 的系统上使用 i18n 模块时会显示错误);
- 改进了对静态库的支持。 解决了使用已卸载的静态库时出现的很多问题;
- 添加了使用字典分配环境变量的功能。 调用environment()时,现在可以将第一个元素指定为字典,其中环境变量以键/值形式定义。 这些变量将被传输到environment_object,就像它们是通过set()方法单独设置的一样。 现在还可以将字典传递给支持“env”参数的各种函数;
- 添加了函数“runtarget alias_target(target_name, dep1, ...)”,该函数创建一个新的第一级构建目标,可以使用选定的构建后端调用该目标(例如“ninja target_name”)。 此构建目标不运行任何命令,但确保构建所有依赖项;
- 如果“[properties]”部分中有 sys_root 设置,则在交叉编译期间启用 PKG_CONFIG_SYSROOT_DIR 环境变量的自动设置;
- 添加了“--gdb-path”选项,用于在指定“--gdb testname”选项以指定的测试脚本运行GDB时确定GDB调试器的路径;
- 添加了对 clang-tidy 构建目标的自动检测,以使用所有源文件运行此 linter。 如果系统中存在 clang-tidy 且在项目根目录中定义了“.clang-tidy”(或“_clang-tidy”)文件,则创建目标;
- 添加了用于 Clang 扩展的依赖项('blocks')
吹氣梢 ; - 链接器和编译器视图是分开的,允许使用编译器和链接器的不同组合;
- 除了 all_sources() 方法之外,还向 SourceSet 对象添加了 all_dependency() 方法;
- 在 run_project_tests.py 中,添加了“--only”选项来选择性地运行测试(例如,“python run_project_tests.py —only fortran python3”);
- find_program() 函数现在能够仅搜索程序所需的版本(版本是通过使用“-version”选项运行程序来确定的);
- 为了控制符号的导出,在shared_module()函数中添加了vs_module_defs选项,类似于shared_library();
- kconfig 模块已扩展为支持用于指定输入文件的configure_file();
- 为configure_file()添加了为“command:”处理程序指定多个输入文件的功能;
- 用于创建存档的“dist”命令已移至一级命令类别(之前该命令与 ninja 相关)。 添加了“--formats”选项来定义要创建的存档类型(例如,
“介子 dist -formats=xztar,zip”)。
来源: opennet.ru