.ninja 文件是 Ninja 构建系统的配置文件或低级构建脚本,通常命名为 build.ninja。Ninja 是一个开源的构建系统,其设计核心是追求速度,特别专注于增量构建(incremental builds)。与 Make 或 CMake 等更高级的构建系统不同,.ninja 文件通常不是由用户手动编写的。相反,它们通常由“元构建系统”(meta-build system),例如 CMake、Meson 或 GYP,生成。这些元构建系统将更抽象的项目描述(如源代码依赖关系)转换成 Ninja 能够执行的高度优化、可并行化的构建指令。这些文件内部包含一个构建步骤的有向无环图(Directed Acyclic Graph, DAG),明确指定了每个步骤的输入(inputs)、输出(outputs)和执行命令(commands)。Ninja 的主要目标是以最快的速度执行这些构建步骤,因此它在大型 C++ 项目中特别受欢迎,因为在这些项目中,构建时间往往是一个显著的性能瓶颈。虽然 .ninja 扩展名本身并非对所有文件都严格标准化,但 build.ninja 是主构建脚本的规范名称。