google的gn构建系统

什么是GN?

GN是一个生成Ninja构建文件的元构建系统,以便你可以用Ninja构建Chromium。

你为什么从GYP切换?

  1. 我们相信GN文件比GYP文件更具可读性和可维护性。
  2. GN很快:
  • GN比GYP快20倍。
  • GN支持作为构建的一部分,根据Ninja的需要自动重新运行。这消除了在更改构建文件时需要记住重新运行GN的必要性。
  1. GN为我们提供了更好的工具来执行依赖(见gn checkvisibilitypublic_depsdata_deps选项的一些例子)。
  2. GN给我们提供了查询构建图的工具; 例如,你可以问“X依赖于什么”和“谁依赖于Y”。

Chromium从GYP-> GN迁移的状态是什么?

截至2016年10月:

  • 所有的Chromium版本都已经被切换过来。
  • 几乎所有的GYP文件都已从Chromium版本中删除。
  • 因此,您不能再使用GYP进行构建。
  • 对于需要转换的“Closure Compilation”构建器,仍然存在一些GYP文件。
  • 一些相关的项目(例如V8,Skia)可能因为自己的原因仍然支持GYP。
  • 我们仍在清理一些可能性,比如让gclient不使用GYP_DEFINES。

我想要更多关于GN的信息!

阅读这些链接:

  • 快速开始
  • 常问问题
  • 语言和操作细节
  • 参考:内置的gn help文档。
  • 风格指南
  • 交叉编译和工具链
  • Hacking GN本身
  • Standaline GN项目
  • 推新二进制文件

你可能感兴趣的:(c)