什么是GN?
GN是一个生成Ninja构建文件的元构建系统,以便你可以用Ninja构建Chromium。
你为什么从GYP切换?
- 我们相信GN文件比GYP文件更具可读性和可维护性。
- GN很快:
- GN比GYP快20倍。
- GN支持作为构建的一部分,根据Ninja的需要自动重新运行。这消除了在更改构建文件时需要记住重新运行GN的必要性。
- GN为我们提供了更好的工具来执行依赖(见
gn check
和visibility
,public_deps
和data_deps
选项的一些例子)。 - GN给我们提供了查询构建图的工具; 例如,你可以问“X依赖于什么”和“谁依赖于Y”。
Chromium从GYP-> GN迁移的状态是什么?
截至2016年10月:
- 所有的Chromium版本都已经被切换过来。
- 几乎所有的GYP文件都已从Chromium版本中删除。
- 因此,您不能再使用GYP进行构建。
- 对于需要转换的“Closure Compilation”构建器,仍然存在一些GYP文件。
- 一些相关的项目(例如V8,Skia)可能因为自己的原因仍然支持GYP。
- 我们仍在清理一些可能性,比如让gclient不使用GYP_DEFINES。
我想要更多关于GN的信息!
阅读这些链接: