GN 编写规范【坚果派】

GN 编写规范

规则1.1

禁止 :在gn中调用外部编译工具编译软件模块。 反例 :在gn中使用action调用automake和Make来编译三方组件。 要求 :需要将外部组件移植成gn的编译形式,避免编译过程对环境产生不必要的依赖,而且可获得编译框架提供的公共能力,包括不限于:安全编译选项,ASAN等。 例外 :Linux Kernel 编译框架实际完成的用户态程序编译,内核完全可以在编译框架之外完成独立编译。某些平台实现为了实现一键编译,使用gn将内核编译加在编译过程中,是可以接受的。

规则1.2

禁止 :禁止在模块的gn文件中,再次添加编译系统已经添加的安全编译选项。 反例 :在模块的编译添加 -fstack-protector-strong 要求 :对于全局已经添加的默认选项,模块开发者应当知晓,不需要为了满足内外部规则再次添加。

编译选项 编译参数 默认值
栈保护 -fstack-protector-strong
Fortify Source -D_FORTIFY_SOURCE=2 -O2

规则1.3

猜你喜欢

转载自blog.csdn.net/qq_39132095/article/details/132792297
今日推荐