Closed Buggem closed 1 month ago
I am not saying that cmake
and make
aren't worse, I'm just saying that they have more support.
What I really like about Waf is that it packs itself into a self-extracting archive and I can be sure that everybody use the same version of a build system. Not only that, the Waf has a pretty small codebase, and if there is a bug in Waf itself, rather than adding a workaround, I can fix it in upstream and make a new archive for this repo, and everybody gets the fix instantly.
I can implement complex checks in it in a real programming language, unlike CMake's ugly DSL. It can even run these checks multithreaded, which reduces configure time a lot without relying on a buggy cache like CMake, where a variable value might stuck until you obliterate the whole build directory and re-run configure from scratch.
It can invoke the compiler itself, unlike CMake which can only generate completely unreadable Make and Ninja files, or project files so complex that IDEs barely can parse them. Also, all ports supported here gets built through the same build scripts, which reduces maintenance burden.
Yeah, back in old fork days, I tried to work with CMake and absolutely hated it. I even tried to convince everybody else that it's not just some piece of crap because "look, everybody else use it". In fact, this argument rarely works in reality if it directly affects the result, making it confusing or outright broken.
cmake
is terrible, I agree. I guess I will make an issue in emscripten-core for a emwaf
script.
Emscripten should be quite easy to set up. Just set CC and CXX variables to compiler targetting Emscripten?
I am unfamillar with
waf
, and the programs I use to compile projects don't support it. Could you at least provide a more commonplace alternative, because obscure build systems likewaf
are practically shit until they get more support. And I also noted you have usedcmake
in the past, so why not have that an option like you have for so many other projects.It confuses me.