FWGS / xash3d-fwgs

Xash3D FWGS engine
1.58k stars 241 forks source link

Other options to build (eg make, cmake, etc) #1847

Closed Buggem closed 1 month ago

Buggem commented 1 month ago

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 like waf are practically shit until they get more support. And I also noted you have used cmake in the past, so why not have that an option like you have for so many other projects.

It confuses me.

Buggem commented 1 month ago

I am not saying that cmake and make aren't worse, I'm just saying that they have more support.

a1batross commented 1 month ago

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.

Buggem commented 1 month ago

cmake is terrible, I agree. I guess I will make an issue in emscripten-core for a emwaf script.

a1batross commented 1 month ago

Emscripten should be quite easy to set up. Just set CC and CXX variables to compiler targetting Emscripten?