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