摘要: 1BuildSystemwords from huangjun@baidu.com(leemars528)内部构建系统*必须*要求所有模块都使用这个构建系统。模块的依赖*不应该*通过额外的系统来管理。*应该*能够指定足够细致的粒度。就*应该*只依赖于需要生成接口所需要的最少内容。1.1GYPgyp(generate your project)是chromium的构建系统,地址在http://code.google.com/p/gyp/。关于GYP和CMake的对比在http://code.google.com/p/gyp/wiki/GypVsCMake。文档建设还是比较差的,并且个人使用一个很 阅读全文
posted @ 2014-04-02 19:04 腐烂的翅膀 阅读(1733) 评论(0) 推荐(0) 编辑
摘要: 什么是Ninja在Unix/Linux下通常使用Makefile来控制代码的编译,但是Makefile对于比较大的项目有时候会比较慢,看看上面那副漫画,代码在编译都变成了程序员放松的借口了。所以这个Google的程序员在开发Chrome的时候因为忍受不了Makefile的速度,自己重新开发出来一套新的控制编译的工具叫作Ninja,Ninja相对于Makefile这套工具更注重于编译速度。除了Chrome现在还有一些其他的比较大的项目也在开始使用Ninja,比如LLVM。我试用了一下感觉还是不错,比如编译Cmake时间大概是原来的1/4。Ninja试用C++实现,其支持的语法非常简单,作者在这里 阅读全文
posted @ 2014-04-02 18:23 腐烂的翅膀 阅读(28260) 评论(1) 推荐(5) 编辑
摘要: Ninja是最近冒出来的一个 build system,它很像 make,然而效率更高,对大项目支持更好。当然我用 Ninja 和效率无关(我又没有那种有几百个中间目标的 C++ 项目要 build),纯粹是因为 mingw-builds 里的make.exe对 PATH 的识别有问题而已。Ninja 使用build.ninja文件来定义构建规则。和 Makefile 里的元编程不同,build.ninja几乎是完全静态的,动态生成依赖其他工具,如 gyp 或者 CMake。下面是我用来构建 typeof.net 的文件:forceFlags = rule generate_site ... 阅读全文
posted @ 2014-04-02 18:22 腐烂的翅膀 阅读(1029) 评论(0) 推荐(0) 编辑
摘要: 在使用Make工具编译LLVM是非常耗时的。往往需要三四个小时。但是使用goolge开源的ninja编译LLVM只需要10到20分钟。本文以llvm3.3为例,演示在linux上编译和安装过程。第一步 安装ninja和cmake1 获取并编译安装 ninja$ git clone git://github.com/martine/ninja.git$ cd ninja$ ./bootstrap.py$ sudo cp ninja /usr/local/bin/Q: warning: A compatible version of re2c (>= 0.11.3) was not foun 阅读全文
posted @ 2014-04-02 18:20 腐烂的翅膀 阅读(6370) 评论(0) 推荐(0) 编辑