Skip to content

List of generators producing ninja build files

Fred Stober edited this page Jan 12, 2016 · 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

  • CMake is a general meta-build system. CMake runs on most platforms, and can generate project files in many formats, including ninja (use -GNinja).

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

  • GN generates ninja files. It's also mean to be generally usable.

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

  • Meson is another general-purpose build system that generates Ninja scripts; to be precise, it uses Ninja as its default build generator.

  • Craftr is a Python based meta build system for Ninja

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

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

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

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.