Meson与Ninja

本文部分内容参考:

meson ninja 简介_旺仔小馒头づ的博客-CSDN博客

Meson首页、文档和下载 - 构建系统 - OSCHINA - 中文开源技术交流社区

Ninja首页、文档和下载 - 小而快的构建系统 - OSCHINA - 中文开源技术交流社区

特此致谢!

一、简介

1. Meson简介

Meson是用Python语言开发的构建工具,编译需要Ninja(用C++实现)命令。Meson 旨在开发最具可用性和快速的构建系统。Meson提供简单但强大的声明式语言用来描述构建。原生支持最新的工具和框架,如 Qt5 、代码覆盖率、单元测试和预编译头文件等。利用一组优化技术来快速编译代码,包括增量编译和完全编译。

Meson是一个跨平台的构建系统,设计为尽可能的快速和用户友好。它支持许多语言和编译器,包括GCC、Clang和Visual Studio。其生成定义是以一种简单的非图灵完备的DSL编写的。

2. Ninja简介

Ninja是Google的一名程序员推出的注重速度的构建工具。一般在Unix/Linux上的程序通过 make/makefile机制来构建编译,而Ninja则通过将编译任务并行组织,从而大大提高了构建速度。

Ninja的目标是成为汇编程序。构建系统在需要做出决策时变得缓慢。当您处于编辑 - 编译周期时,您希望它尽可能快 - 您希望构建系统执行必要的最少工作以确定需要立即构建的内容。

Ninja包含描述任意依赖图所需的最基本功能,它缺乏语法使得无法表达复杂的决策;相反,Ninja旨在与生成其输入文件的单独程序一起使用。生成器程序(如 ./configure在autotools项目中找到的)可以分析系统依赖性并尽可能多地做出尽可能多的决策,以便增量构建保持快速。超越自动工具,甚至构建时决定。比如 “应该使用哪个编译器标志?” 或 “应该构建调试或发布模式二进制文件?”属于.ninja文件生成器。

再次重申,Ninja比其它构建系统更快,因为它非常简单。但必须告诉Ninja在创建项目.ninja文件时要做什么。

二、构建、编译和安装

1. 使用Meson进行构建(build)

通过meson build命令进行系统构建。meson build(相当于configure),会在build目录下生成build.ninja文件(相当于Makefile)和compile_command.json文件。

前提:使用meson构建前相应的源码需要存在meson.build构建描述文件。

2. 使用Ninja进行编译

构建完成后需要编译,使用ninja -C build(相当于make)命令进行编译。

3. 使用Ninja进行安装

编译完成后需要安装,使用ninja -C build install(相当于make install)命令进行安装。

猜你喜欢

转载自blog.csdn.net/phmatthaus/article/details/129790039