GYP构建系统总结
GYP,Generate Your Project,一个Google开源的构建系统,最开始用于Chromium项目,现在一些其他的开源项目也开始使用GYP,如v8和node-gyp。不管怎样,这仅仅是一个工具,本文直接把gyp的使用方法的说明一气呵成。
特别之处
在已经有很多的构建系统的情况下,gyp诞生的哲学或者说优点如下:
- 各平台使用各自主流的构建系统。
- 程序员更熟悉自己的平台,减少学习成本。
- 构建速度快。自己平台的主流构建系统的速度是各平台优化过的。
- 在一个平台上可以生成所有支持的平台的工程文件。
- 如在mac上也可以生成Visual Studio工程,windows上也可以生成Xcode工程。
- 生成的工程文件和手工创建的工程文件没有区别
- 这样,随时可以停止使用gyp。别人可以只使用相关工程文件而不使用gyp
安装
由于本文对chromium的编译是基于Windows做调试的,所以这里仅说明gyp在Windows下的使用。
前提条件:本机需要安装python2.7,svn或git。
要安装gyp首先得去克隆google官方维护的gyp的git仓库。在window上安装好git以后,开始克隆:
这样就把gyp的远程git仓库克隆下来了,接下来就可以安装了。
在windows上打开一个cmd(不能再上面的的git bash中操作),切换到gyp的根目录,输入下面命令开始安装,然后等待其安装完成:
python setup.py install
为了能够在整个系统的目录下都能够使用gyp,所以把gyp的目录添加到系统的环境变量中。我的添加目录为:
PATH=C:\Users\zhaofaquan\gyp
至此gyp的安装和配置过程就结束了,这个工具就能使用了。
使用
- 编写.gyp文件
- 运行gyp命令生成makefile、build.ninja文件或xcode、vs等工程
- 编译。根据第2步的结果,运行make、ninja或者在xcode、vs里编译
举一个最简单的例子,源文件如下:
#include <iostream> int main(int argc, const char* argv[]) { std::cout << "Hello World!" << std::endl; return 0; }
编写.gyp文件如下:
{ 'targets': [ { 'target_name': 'main', 'type': 'executable', 'sources': [ 'main.cpp', ], }, ], }
在源文件目录下运行命令gyp --depth=. main.gyp
,生成工程文件。打开生成的工程文件编译、运行即可。