readme overview
This commit is contained in:
parent
36a41c2789
commit
17ee1a3b70
1 changed files with 25 additions and 1 deletions
26
README.md
26
README.md
|
@ -1,5 +1,29 @@
|
|||
# ngen
|
||||
Build file generator (engine) for the [ninja build
|
||||
Build file generator (engine) for the [`ninja` build
|
||||
system](https://ninja-build.org/).
|
||||
|
||||
Licensed under the GPLv3.
|
||||
|
||||
## Methodology and Overview
|
||||
The problem with existing meta build systems---or makefile generators---like
|
||||
[Meson](https://mesonbuild.com/) and [CMake](https://cmake.org/) 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](https://ninja-build.org/) 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.
|
||||
|
|
Loading…
Reference in a new issue