gyp 使用参考

gyp 官网

Generate Your ProjectsGenerate Your Projects (可能需要梯子)

gyp 命令

  • --depth 据说是Chromium历史遗留问题,需要设置为 --depth=.

  • -f 指定生成工程文件的类型,选项有: make ninja xcode msvs scons

  • -G 指定 vs 版本 msvs_version=2013

  • -D 传入变量到 gyp。传入的变量可以在gyp内使用 <(VAR) 获取

  • --toplevel-dir 设置源代码的根目录,默认为depth设置的目录

执行 shell 命令

gyp 可以将 shell 命令的结果返回给变量,语法为 <!(cmd)<!@(cmd) ,前者返回 string ,后者返回 list.
如使用 ls 命令在 source 中添加所有的 .h 文件 :

1
2
3
'source': [
'<!@(ls -l ./*.h)',
]

常用配置项

  • defines 宏定义 ,对应 -D ,如 -D_DEBUG

  • include_dirs 头文件地址, 对应 -I

  • cflags 编译选项, 如 -g -O3

  • ldflags 链接选项, 对应 -l ,如 -lpthread -lsqlite3

  • type 目标类型 有 executable ,static_library ,shared_library

变量

变量分为两类,预定义变量、自定义变量

预定义变量

这些变量名称为gyp内置,一般为 大写或(或)下划线 组成:

  • OS 操作系统,如 OS == "win"

  • EXECUTABLE_PREFIX 可执行文件的前缀

  • EXECUTABLE_SUFFIX 可执行文件的后缀

  • PRODUCT_DIR 编译出的目标文件的目录

  • INTERMEDIATE_DIR 中间文件目录(只对单一 target 有效)

自定义变量

variables 用于自定义变量。自定义的变量可以使用以下方式使用:

  • <(VAR) 变量

  • <@(VAR) 列表变量

文件拷贝

copies 提供文件拷贝功能,其结构中需要使用两个字段:

  • destination 目标路径。如果目标文件夹不存在,gyp会自动创建一个

  • files 源文件列表

1
2
3
4
5
'copies':[
{'destination':'./include',
'files':['headfile1.h','headfile2.h'],
},
]

==>待整理