2.2.1 GN (Generate Ninja) 脚本语法与逻辑 在构建系统的世界里,GN(Generate Ninja)不是一把锤子,而是一台精密的数控机床——它不直接敲打代码,却决定了每一行编译指令如何被雕刻、排列、调度与执行。当你第一次打开 文件,看到 或 这样的语句时,你面对的并非静态配置,而是一个惰性求值的、带作用域约束的、支持元编程的构建逻辑图灵机。GN 的语法表面简洁,内里却布满陷阱与精妙设计:它没有循环,却用模板实现递归展开;它禁止运行时计算,却通过 和 提供声明式遍历;它拒绝全局状态,却用 、 、 等隐式变量编织出一张跨平台的语义网络。