gyp linux,使用gyp
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相关推荐
- gyp linux,GYP 简介
说起项目构建工具,Linux 用户最熟悉的恐怕就是 Autotools,它将编译安装这个步骤大大简化.但对于项目作者来说,想要使用 Autotools 生成有效的配置文件着实需要下一番功夫,用现在流行 ...
- gyp linux,gyp编译工具
最近用到了 node-gyp 这个工具, 是node 社区对 google gyp 编译工具的一个封装, 使用 node-gyp 工具可以用C++为node 项目编写 addon. 了解了一下 goo ...
- linux node gyp 编译,windows下安装node-gyp
什么是node-gyp? gyp是一种根据c++源代码编译的工具,node-gyp就是为node编译c++扩展的时候使用的编译工具. 最近在研究native script需要使用到node-gyp,遇 ...
- linux node gyp 编译,node gyp编译所需要的环境
gyp编译工具 最近用到了 node-gyp 这个工具, 是node 社区对 google gyp 编译工具的一个封装, 使用 node-gyp 工具可以用C++为node 项目编写 addon. 了 ...
- linux node gyp 编译,Linux离线安装node-gyp
Linux离线安装node-gyp 环境: NodeJS : v12.13.0 系统 : centos 7 node-gyp : v6.0.1 前言 node-gyp是node C++模块编译的重要工 ...
- 关于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 ...
- WebRTC编译系统之GYP,gn和ninja
GN(Generate Ninja)来生成构建脚本,使用 ninja 来构建. gn 的介绍在这里:https://www.chromium.org/developers/gn-build-confi ...
- GYP(Generate Your Project)介绍
chromium代码是通过GYP构建的,这是一个跨平台的构建系统,针对不同的操作系统,生成不同的编译工程文件.一个.gyp文件的目的是生成makefile.或者.sln工程文件. 一个典型的.gyp文 ...
- GYP使用总结 ---- 从Makefile到GYP
GYP是比Makefile更高层次的一种C/C++(其他语言未知)代码编译工具.通过编写GYP文件,可以生成多种类型的编译工程,如ninja.Makefile和VS工程.相比直接使用Makefile来 ...
最新文章
- lintcode-136-分割回文串
- 深职院计算机学院教室,机电学院计算机专业赴深职院为国赛训练取经
- vue源码解析pdf_Vue源码全面解析八 callHook函数(触发生命周期函数)
- 【计算理论】计算理论总结 ( 正则表达式转为非确定性有限自动机 NFA | 示例 ) ★★
- 微软 改变 开源【几个站点】
- Gitbook 与Ditamap的区别
- 关于产品设计的一点儿感想
- Ubuntu安装pycharm后没有快捷方式的解决办法
- 原生App VS 移动Web App
- android ide 下载
- 计算机Excel运行环境,Excel Server Tutorial
- mac触控板 鼠标中键_如何使用触控板,鼠标或键盘在任何Mac上单击鼠标右键
- 如何在物联网平台创建一个千里传音产品?
- 体会现实生活的两个月(上)
- STM32之Bit-Banding
- 翻译小窍门-谢谢你勾引我老公
- 九连环问题c语言程序,九连环答案生成器的C源程序 (转)
- 9.进程监控(process_exporter)
- Swift学习笔记(5):集合类型
- 贵阳 计算机就业,学计算机专业就业率高值得信赖_贵阳经济技术学校