0x677378 - gsx


Comparison of C build systems

Expectations

To achieve this, we probably need to split to build tools into to different programs. One for the actual building and one for generating the build files.

Build Systems

Make / GNU Make

Pros

Cons

Ninja

Pros

Cons

Samurai

Pros

Cons

Meta Build Systems

CMake

Pros

Cons

Meson

Pros

Cons

GN

Bad documentation. I couldn’t build a “Hello, World!” project after half an hour trying. Honestly this should be possible. You shouldn’t need to read the whole documentation just to build a damn “Hello, World!”.

Premake

Can’t generate ninja build files, so I haven’t look deeper in it.

All the Java build systems

Ant, Maven, Gradle, Bazel, … You name it. Many sound pretty interesting, but I don’t want to have a JVM installed just for a build system. I can live with build systems written in C++, as I can drop in a binary for bootstrapping. Python is also acceptable, as it is installed on most of my systems, but a JVM, seriously?

Additional build system, which I haven’t looked into now

Further reading