Gyp解析文档 - 图文(2)

2020-05-06 10:59

target_name为generate_header的部分生成一个头文件header.h,

'all_dependent_settings'字段中设置了包含该头文件的路径,其他target需要依赖该头文件的时候就可以找到该头文件了。同时具有传递性,例子中chained中需要头文件,只需要依赖chain就可了,因

为chain中加入了对generate_header部分的依赖,chained通过chain找到了所需要的头文件。 2.1.3、关键字configurations

类型为list,用于实现对编译的配置,可能出现在target或者target_default字段中。configurations可以包含大部分字段,除了actions、all_dependent_settings、configurations、dependencies、direct_dependent_settings、libraries、link_settings、sources、target_name和type。configurations包含一个自己的属性字段:configuration_name,该配置部分的名字。 【例子】

a)编译一个configurations.gyp的文件如下:

b)编写一个configurations.c文件如下:

c)生存ninja文件,执行命令如下:

命令gyp --depth=. --format=ninja configurations.gyp执行完毕后,可以看到当前目录下的目录变化。如果一个gyp文件没有配置configurations字段,那么默认情况下,执行完gyp命令后,会在当前目录下生成一个out/Default和out/Default/obj的目录;而现在在configurations下面配置了“Debug”、“FOO”和“Release”三项内容,那么命令执行完毕后也就生成了相应的目录,如上图。

d)执行ninja命令,如下:

可以看到执行ninja -C out/Debug后,会在Debug下面生成一个configurations的可执行程序,

执行该程序后,会看到“Debug configuration”的打印,这是因为可执行程序会根据gyp文件中defines后面的内容来执行程序中相应的语句。

同样,执行ninja -C out/Release和ninja -C out/Foo后,也会有相应的输出。 2.1.4、copies关键字

类型为list,用于执行普通的复制行为。该字段下面必须包含两个字段项目:

? destinations:string类型,文件被复制的目的路径 ? files:list类型,要复制的文件列表

【例子】

a)编写一个copies.gyp的文件,内容如下:

当前目录下面包含一个文件“executable-file.sh”,将该文件复制到”PRODUCT_DIR”中,“PRODUCT_DIR”是gyp的内建宏变量,默认情况下执行gyp后,gyp会在当前路径下面建立一个目录out/Default,当前路径加上out/Default也就是PRODUCT_DIR的值。 b)生成ninja文件,

c)执行ninja命令,使gyp文件的中的命令生效:

可以看到”executable-file.sh”文件被复制到out/Default下面。 2.1.5、关键字defines

类型为list,用来定义预处理或者宏变量传递给编译器,也可通过命令行传递给编译器。 【例子—预处理和变量】

a)编写一个defines.gyp的文件,内容如下:

defines后面定义了‘FOO’用于预处理定义;'VALUE=1'和‘PAREN_VALUE=(1+2+3)’,既是预处理定义又是宏变量定义,后面的变量为整数类型,PAREN_VALUE后面的(1+2+3)用于执行数值计算,然后赋值给PAREN_VALUE;'HASH_VALUE=”a #1”',既是预处理又是宏定义,后面的变量为字符串类型。

b)编写一个defines.c文件,内容如下:


Gyp解析文档 - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国政治思想史考试资料

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: