GN是一个生成Ninja构建文件的元构建系统,以便可以用Ninja构建Chromium。
GN使用非常简单的动态类型语言。
类型是:布尔(true,false);64位有符号整数;字符串;列表(任何其他类型);范围(Scopes)。
Ninja是一个构建系统,与Make类似。
作为输入,你要描述将源文件处理为目标文件这一过程所需的命令。
Ninja使用这些命令保持目标处于最新状态。
与其它一些构建系统不同,Ninja的主要设计目标是速度。
Ninja获得了相当的成功,逐渐取代了Chrome所使用的构建系统。
Ninja公开后,一些人贡献了代码,使得流行的CMake构建系统能够生成Ninja文件。
现在,Ninja也被用来开发基于CMake的系统,如LLVM和ReactOS。
其它一些拥有定制构建系统的项目,如TextMate,直接将Ninja作为其构建目标。