Hi Greg, Ninja does exactly one thing, maintain dependencies and does that very well. It is intended to be doing only this, nothing cheesy about it. Ninja has a reference implementation in C++, but was ported to many different languages. Meson is a build system that relies on backends, Ninja is one of them. Meson has a reference implementation written in Python, but was already ported to many different languages, including, C99. https://sr.ht/~lattis/muon/ This implementation of Meson sports a builtin Ninja backend as well, so you can build Meson using only C99, no C++, no Python. I share your sentiment about CMake…. Bsdmake is very decent as a build system, if you stay on the surface. But it becomes quite nasty when you dive below. Also with bsdmake you can do arbitrary things, which is not good. A build system should describe your build, not make your coffee. This is where Meson is excelling - you cannot do miracles in Meson, you can only describe your build. And anybody reading that build file will immediately know what is going to happen when it is run. This is a huge contrast to bsdmake. Cheers, Keve
|