GYP(Generate You Project),生成IDE项目的工具,使用Python脚本写成,配置文件为JSON格式。

使用gyp需要两个环境,python和gyp。gyp可以直接在这里下载

git clone https://chromium.googlesource.com/external/gyp

一般下载到build/gyp

使用python将我们的gyp文件加载并运行起来

Shell

import gyp // 载入gyp模块

import sys

import os

args = sys.argv[1:]

args.append(os.path.join(os.path.abspath(uv_root), 'test.gyp'))

def run_gyp(args) :

rc = gyp.main(args) // gyp初始化

if rc != 0 :

print('Error running GYP')

sys.exit(rc)

1

2

3

4

5

6

7

8

9

10

11

12

importgyp//载入gyp模块

importsys

importos

args=sys.argv[1:]

args.append(os.path.join(os.path.abspath(uv_root),'test.gyp'))

defrun_gyp(args):

rc=gyp.main(args)//gyp初始化

ifrc!=0:

print('Error running GYP')

sys.exit(rc)

args中可以添加工程的配置文件,大概格式如下:

Shell

{

'target_defaults': {

'conditions': [

['OS != "win"', {

'defines': [

'_LARGEFILE_SOURCE',

'_FILE_OFFSET_BITS=64',

],

'conditions': [

['OS=="solaris"', {

'cflags': [ '-pthreads' ],

}],

['OS not in "solaris android"', {

'cflags': [ '-pthread' ],

}],

],

}],

],

'xcode_settings': {

'WARNING_CFLAGS': [ '-Wall', '-Wextra', '-Wno-unused-parameter' ],

'OTHER_CFLAGS': [ '-g', '--std=gnu89', '-pedantic' ],

}

},

target: [

{

'target_name': 'hello',

'type': 'executable',

'dependencies': [ 'libuv' ],

'sources': [

'hello.c',

],

'conditions': [

[ 'OS=="win"', {

'sources': [

],

'libraries': [ '-lws2_32' ]

}, { # POSIX

'defines': [ '_GNU_SOURCE' ],

'sources': [

'test/runner-unix.c',

'test/runner-unix.h',

]

}],

['uv_library=="shared_library"', {

'defines': [ 'USING_UV_SHARED=1' ]

}],

],

'msvs-settings': {

'VCLinkerTool': {

'SubSystem': 1, # /subsystem:console

},

},

},

]

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

{

'target_defaults':{

'conditions':[

['OS != "win"',{

'defines':[

'_LARGEFILE_SOURCE',

'_FILE_OFFSET_BITS=64',

],

'conditions':[

['OS=="solaris"',{

'cflags':['-pthreads'],

}],

['OS not in "solaris android"',{

'cflags':['-pthread'],

}],

],

}],

],

'xcode_settings':{

'WARNING_CFLAGS':['-Wall','-Wextra','-Wno-unused-parameter'],

'OTHER_CFLAGS':['-g','--std=gnu89','-pedantic'],

}

},

target:[

{

'target_name':'hello',

'type':'executable',

'dependencies':['libuv'],

'sources':[

'hello.c',

],

'conditions':[

['OS=="win"',{

'sources':[

],

'libraries':['-lws2_32']

},{# POSIX

'defines':['_GNU_SOURCE'],

'sources':[

'test/runner-unix.c',

'test/runner-unix.h',

]

}],

['uv_library=="shared_library"',{

'defines':['USING_UV_SHARED=1']

}],

],

'msvs-settings':{

'VCLinkerTool':{

'SubSystem':1,# /subsystem:console

},

},

},

]

}

target_name:工程名

type: 工程类型

dependencies: 依赖文件夹

sources: 源文件

conditions:条件判断

msvs-settings:msvs额外设置

gyp linux,使用gyp相关推荐

  1. gyp linux,GYP 简介

    说起项目构建工具,Linux 用户最熟悉的恐怕就是 Autotools,它将编译安装这个步骤大大简化.但对于项目作者来说,想要使用 Autotools 生成有效的配置文件着实需要下一番功夫,用现在流行 ...

  2. gyp linux,gyp编译工具

    最近用到了 node-gyp 这个工具, 是node 社区对 google gyp 编译工具的一个封装, 使用 node-gyp 工具可以用C++为node 项目编写 addon. 了解了一下 goo ...

  3. linux node gyp 编译,windows下安装node-gyp

    什么是node-gyp? gyp是一种根据c++源代码编译的工具,node-gyp就是为node编译c++扩展的时候使用的编译工具. 最近在研究native script需要使用到node-gyp,遇 ...

  4. linux node gyp 编译,node gyp编译所需要的环境

    gyp编译工具 最近用到了 node-gyp 这个工具, 是node 社区对 google gyp 编译工具的一个封装, 使用 node-gyp 工具可以用C++为node 项目编写 addon. 了 ...

  5. linux node gyp 编译,Linux离线安装node-gyp

    Linux离线安装node-gyp 环境: NodeJS : v12.13.0 系统 : centos 7 node-gyp : v6.0.1 前言 node-gyp是node C++模块编译的重要工 ...

  6. 关于gyp ERR node-gyp gyp ERR node -v错误记录

    重要出错信息 gyp ERR! node -v v14.15.3 gyp ERR! node-gyp -v v5.1.0 fatal error: too many errors emitted, s ...

  7. WebRTC编译系统之GYP,gn和ninja

    GN(Generate Ninja)来生成构建脚本,使用 ninja 来构建. gn 的介绍在这里:https://www.chromium.org/developers/gn-build-confi ...

  8. GYP(Generate Your Project)介绍

    chromium代码是通过GYP构建的,这是一个跨平台的构建系统,针对不同的操作系统,生成不同的编译工程文件.一个.gyp文件的目的是生成makefile.或者.sln工程文件. 一个典型的.gyp文 ...

  9. GYP使用总结 ---- 从Makefile到GYP

    GYP是比Makefile更高层次的一种C/C++(其他语言未知)代码编译工具.通过编写GYP文件,可以生成多种类型的编译工程,如ninja.Makefile和VS工程.相比直接使用Makefile来 ...

最新文章

  1. lintcode-136-分割回文串
  2. 深职院计算机学院教室,机电学院计算机专业赴深职院为国赛训练取经
  3. vue源码解析pdf_Vue源码全面解析八 callHook函数(触发生命周期函数)
  4. 【计算理论】计算理论总结 ( 正则表达式转为非确定性有限自动机 NFA | 示例 ) ★★
  5. 微软 改变 开源【几个站点】
  6. Gitbook 与Ditamap的区别
  7. 关于产品设计的一点儿感想
  8. Ubuntu安装pycharm后没有快捷方式的解决办法
  9. 原生App VS 移动Web App
  10. android ide 下载
  11. 计算机Excel运行环境,Excel Server Tutorial
  12. mac触控板 鼠标中键_如何使用触控板,鼠标或键盘在任何Mac上单击鼠标右键
  13. 如何在物联网平台创建一个千里传音产品?
  14. 体会现实生活的两个月(上)
  15. STM32之Bit-Banding
  16. 翻译小窍门-谢谢你勾引我老公
  17. 九连环问题c语言程序,九连环答案生成器的C源程序 (转)
  18. 9.进程监控(process_exporter)
  19. Swift学习笔记(5):集合类型
  20. 贵阳 计算机就业,学计算机专业就业率高值得信赖_贵阳经济技术学校

热门文章

  1. 网络编程中的 SIGPIPE 信号
  2. Android audio音频流数据异常问题分析
  3. storm之spout
  4. excel线性回归练习
  5. Github Hosts
  6. 十进制转十六进制(C++)
  7. 高代——关于线性变换基,矩阵,核与值域
  8. 使用网络发传真对现×××公的帮助
  9. URI、URL、URN三者之间的关系
  10. android系统软件安装,Android系统软件安装方法