src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
install.sh | ||
LICENSE | ||
README.md |
ngen
Build file generator (engine) for the ninja
build
system.
Licensed under the GPLv3.
Methodology and Overview
The problem with existing meta build systems---or makefile generators---like Meson and CMake is that they are needlessly complex for small-to-medium-sized C/C++ projects. These projects are just large enough that hand-writing a makefile would be painful, but trying to configure a large meta build system would be just as painful. It is unacceptable that building a simple project with 10 .c files and a library requires knowledge of a unique, obscure configuration language which is constantly changing.
ngen aims to make generating build files for these small C/C++ projects as simple as possible by using a basic key-value configuration file using patterns that any experienced programmer should be familiar with. In doing so, ngen fills the gap between writing your own makefile and wrangling with CMakeLists.txt.
ngen generates files for the Ninja build system.
Ninja is a small, modern build system that uses a bare-bones configuration
language that is easy to both read and generate (but not necessarily easy to
write by hand). "Where other build systems are high-level languages Ninja aims
to be an assembler," according to Ninja's website. It can be thought of as a
simpler, faster replacement for the classic make
, . It is used by default by
Meson; CMake can also be configured to use ninja as a backend.