-
Notifications
You must be signed in to change notification settings - Fork 1.6k
List of generators producing ninja build files
This page lists generators that can produce ninja files. Some of them are generally usable; some are one-off scripts specific to a given project.
-
Bang is a Ninja file generator written and scripted in LuaX. It implements Ninja primitives as a Lua DSL and adds some higher level functions (hybrid rule/build statements, help, clean and install targets, rule chains, functional programming...).
-
bfg9000 is a cross-platform build configuration system with an emphasis on making it easy to define how to build your software. It converts a Python-based build script into the appropriate files for your underlying build system of choice (Make, Ninja, or MSBuild).
-
Blade Build is a powerful declarative multilingual build system. it used to use scons as the backend but got notable speed improvement after switching the backend to ninja.
-
Blueprint (archived) takes build descriptions written in Go and generates ninja files from them.
-
BuildFox (most recent commit in 2016) is a minimalistic ninja generator with focus on less overhead and explicit configuration files. Plus it also generates IDE projects that use ninja as build system.
-
CMake is a general meta-build system. CMake runs on most platforms, and can generate project files in many formats, including ninja (use
-GNinja
). -
Craftr is a powerful, modular Python based build system that aims for cross-platform compatibility and native support for various toolchains and libraries.
-
GENie - Project generator tool.
-
GN is the current meta-build system for the Chromium project and aims to be faster than GYP (the previous system) while generating more readable, maintainable build files.
-
GYP is also a general meta-build system that runs on most platforms. Among other formats, it can generate ninja manifest files as well as Visual Studio and Xcode project files that can optionally delegate to ninja for the actual build (use
-f ninja
). -
Jagen just another build system generator tool with focus on management of projects consisting of multiple packages. It compiles declarative rules to build file for Ninja which does the actual work.
-
kati is a GNU make clone that converts Makefiles to ninja build files. The main goal of this tool is to speed up incremental builds of Android.
-
Meson is another general-purpose build system that generates Ninja scripts; to be precise, it uses Ninja as its default build generator.
-
nimbus takes build descriptions written in NimScript and generates ninja files from them.
-
premake is a general meta-build system. premake runs on most platforms, and can generate project files in many formats, including ninja with it module premake-ninja.
-
pyrate (most recent commit in 2016) is a tool to generate ninja files for simple projects using a python based build configuration script
-
Rōnin (most recent commit in 2018) is a straightforward but powerful build system based on Ninja and Python
-
xmake is a cross-platform build utility based on Lua
xmake project -k ninja
These links are to projects that have written their own custom ninja generation logic:
-
Clasp's koga is what generates ninja files for Clasp and Cando's build.
-
TextMate 2's gen_build script is what generates ninja files for TextMate's build.
-
Ninja's configure.py script is the script that generates ninja files for building ninja itself.
-
IRPF90 has a ninja.py seems to use a combination of Makefiles and ninja files.
-
kninja is an experimental ninja file generator for the Linux kernel's build system.
-
mongo_module_ninja A module for MongoDB's build system to turn SCons into a ninja generator.
-
BuckleScript's
bsb
build tool uses Ninja to compile OCaml to JavaScript.
-
Ninja's ninja_syntax.py script (also available from PyPI as ninja-syntax package) is a low-level Python module that generates ninja files. It is just a generator of the ninja syntax, and unlike the above build tools it doesn't provide any higher-level assistance in setting up your build.
-
ninja_syntax.lua is a Lua-based clone of the above python script.
-
ninja-build-gen is Ninja generator library for that runs on NodeJS.
-
language-ninja is a Haskell library for parsing, pretty-printing, and "compiling" Ninja files.