Skip to content

List of generators producing ninja build files

Remy Goldschmidt edited this page Jul 20, 2017 · 44 revisions

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.

General Purpose

  • 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).

  • Blueprint takes build descriptions written in Go and generates ninja files from them.

  • BuildFox 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).

  • 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.

  • pyrate is a tool to generate ninja files for simple projects using a python based build configuration script

  • Rōnin is a straightforward but powerful build system based on Ninja and Python

One-offs

These links are to projects that have written their own custom ninja generation logic:

Utilities

  • 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-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.