Blog
Blog copied to clipboard
Ninja - WebRTC 构建(编译)工具
官网
https://ninja-build.org/
翻译
Ninja是一个专注速度的小型编译系统。它在两个方面不同于其他编译系统:它被设计成输入文件是由高级别构建系统生成(TODO 这句话不通);它被设计尽可能快。
为什么还有其他编译系统?
其他编译系统是高级别的编译系统,Ninja是汇编级别的。
Ninja的构建文件时人可读但是不方便手写的。(查看Ninja构建自己的构建文件),这些构建文件使得Ninja可以快速构建。
你应该使用Ninja吗?
Ninja的低级别的构建方法,使得它完美的构建大型系统;看这个已经存在的工具列表。Ninja用于构建Chrome,部分Android,LLVM,还可以被用作为许多其他的项目,与CMake一起使用。
见手册:哲学背景,如何使用Ninja构建你的系统,平台支持,并详细介绍了语言的语义。
新的
最新的Ninja版本为v1.7.1,2016年4月28号。看这里。
获取Ninja
你可以下载Ninja二进制文件,或者在系统包管理器中也可以找到。
或者,从源代码构建:
$ git clone git://github.com/ninja-build/ninja.git && cd ninja
$ git checkout release
$ cat README
资源
其他网站找到的
对比别的构建系统,Ninja的特点是快和简洁,仅保留最少的特性来提高编译速度。Ninja最初的想法源于martine在开发Chromium项目时对编译速度的抱怨。
简单来说,Ninja是一个很快的make替代品。ninja对应make,build.ninja对应makefile,CMake、gyp对应autoconf、automake。
构建规则
build 目标文件 : 转换规则 依赖文件a 依赖文件b ...
变量覆写(若有)