Eine Ninja Build-System Konfigurationsdatei, oft benannt als build.ninja, ist ein Low-Level-Build-Skript, das vom Ninja Build-System verwendet wird. Ninja ist ein Open-Source-Build-System, das primär auf Geschwindigkeit ausgelegt ist und sich auf inkrementelle Builds konzentriert. Im Gegensatz zu höherstufigen Build-Systemen wie Make oder CMake werden Ninja-Dateien typischerweise nicht manuell von Entwicklern geschrieben. Stattdessen werden sie üblicherweise von einem 'Meta-Build-System' wie CMake, Meson oder GYP generiert. Diese Meta-Build-Systeme übersetzen eine abstraktere Projektbeschreibung in die hochoptimierten, parallelisierbaren Build-Anweisungen, die Ninja effizient ausführen kann. Die .ninja-Dateien enthalten einen gerichteten azyklischen Graphen (DAG) von Build-Schritten, der präzise Eingaben, Ausgaben und die auszuführenden Befehle für jeden einzelnen Schritt spezifiziert. Das Hauptziel von Ninja ist es, diese Build-Schritte so schnell wie möglich auszuführen, was es besonders beliebt für große C++-Projekte macht, bei denen lange Build-Zeiten einen erheblichen Engpass darstellen können. Obwohl die .ninja-Erweiterung nicht für alle Dateien streng standardisiert ist, ist build.ninja der kanonische Name für das Haupt-Build-Skript eines Projekts.