这一页是关于如何设计一个可以搭配 GN 独立构建的项目,也可以被引入到 Chrome 构建中.
原则上,GN 与 GYP 没有什么不同,因为在独立构建和 Chrome 构建之间存在一些必须相同的核心配置.然而,GN 在命名和配置方面更加明确,因此两个构建之间的相似性也更加明确,但配置的灵活性也更低.
要求:
- 主构建配置文件.Chrome 是
//build/config/BUILDCONFIG.gn
- 用于定义工具链的单独生成文件.因为复杂的原因,将这些放入一个BUILD.gn文件中,任何目标的定义共享并不是一个好主意.Chrome 时定义在
//build/toolchain/<platform>/BUILD.gn
. - 一
BUILD.gn
根目录中的文件.这将在生成配置文件之后加载,以启动生成.
你可能想要根目录的一个.gn
文件.当您运行 GN 时,它递归地查找目录树,直到找到该文件,并将包含的目录视为"源根目录".该文件还定义了主构建配置文件的位置:
- 见 Chrome
src/.gn
文件. - 与 Chrome 不同,您可能不需要定义第二根目录.
- 看
gn help dotfile
获取更多信息.
在库添加一个.gn
文件,拖入 Chrome 的存储库,意味着在子目录中为子项目运行 GN ,而不是为所有 Chrome 配置构建.这可能是有利的,也可能是不利的.
如果您在具有此类文件的目录中,并且不想使用它(例如,要进行完整的 Chrome 构建),则可以使用命令行参数--root
和--dotfile
设置所需的值.
如果您想要一个完全独立的构建,它与 Chrome 无关,也不使用 Chrome的//build
文件,你可以看//tools/gn/example.