现在的位置: 首页 > 综合 > 正文

GYP(Generate Your Project)一个很有价值的构建系统

2018年05月17日 ⁄ 综合 ⁄ 共 1406字 ⁄ 字号 评论关闭

转载自:http://blog.csdn.net/bertzhang/article/details/7387954

因为阅读chromium的需要,也熟悉了一下chromium使用的GYP构建系统,其实这个系统和我原来所在的一个公司的构建系统非常相似,因此学习起来也比较容易。

首先看一下gyp的安装,如果你使用ubuntu系统那么安装可以通过下面的命令完成:

  1. sudo apt-get install gyp  


下面我们就通过一个例子来看看gyp的使用,假设我们编写三个文件hello_world.cc, my_class.h, my_class.cc这三个文件内容如下:

hello_world.cc

  1. #include <stdio.h>  
  2. #include "my_class.h"  
  3. int main(int argc, char** argv) {  
  4.   printf("hello world\n");  
  5.   MyClass my_class(100);  
  6.   my_class.Fun1();    
  7. }  


my_class.h

  1. class MyClass {  
  2. public:  
  3.   MyClass(int value) : value_(value) {}  
  4.   void Fun1();  
  5. private:  
  6.   int value_;  
  7. };  


my_class.cc

  1. #include "my_class.h"  
  2. #include <stdio.h>  
  3. void MyClass::Fun1() {  
  4.   printf("the value is %d\n", value_);  
  5. }  


下面我们编写构建文件foo.gyp

foo.gyp

  1. {  
  2.    'targets': [  
  3.      {  
  4.        'target_name''foo',  
  5.        'type''executable',  
  6.        'sources': [  
  7.          'hello_world.cc',  
  8.   'my_class.h',  
  9.   'my_class.cc',  
  10.        ],  
  11.      },  
  12.    ],  
  13.  }  


然后运行命令:

  1. gyp --depth=. foo.gyp  


其中--depth=.虽然没什么用,但必须要加上,参考文献[1]说是chromium遗留问题

命令运行后会生成Makefile文件,这样就可以使用make进行编译了。

注意:最后}后面没有“,”, 开始这个地方写错了,总是出错,耽误了不少时间。

如果涉及到库、编译依赖、跨平台等问题可以详细参考文献[2],这里不一一说明,本文主要演示一个简单的使用过程,更多功能可以参考文献[2]来实现。

文献1比较了gyp和cmake等,也有一定的参考价值。

参考文献:

[1]http://blog.xiaogaozi.org/2011/10/29/introduction-to-gyp

[2]http://code.google.com/p/gyp/wiki/GypUserDocumentation

抱歉!评论已关闭.