Hacker News new | ask | show | jobs
by d99kris 771 days ago
Xmake gets posted here once in a while, here are some previous discussions:

https://news.ycombinator.com/item?id=19610459

https://news.ycombinator.com/item?id=22583147

https://news.ycombinator.com/item?id=30696061

1 comments

Thanks, I was curious what are the main differences to Meson (the only general build system so far that I enjoyed using). From these past discussions I gathered:

Xmake's biggest advantage: it's a single binary (vs Meson requiring Python)

Meson's biggest advantage (aside from popularity): it's a declarative DSL rather (vs including a full-blown programming language like Lua in Xmake)

(The second point is subjective, I know some think that including a full programming language is a strength but to my eyes it's a downside that largely outweighs the Python dependency.)

> Meson's biggest advantage (aside from popularity): it's a declarative DSL rather

I personally don't consider this an advantage. We've ran into the limitations of a DSL way too often at work and at this point I prefer just having a plain programming language as an interface. This way you don't have to learn a custom DSL with its own quirsk, you always have the escape hatch of just writing custom code, and it tends to be less quirky.

The "escape hatch" becomes a liability once a project becomes large enough.
I find that C and C++ need nontrivial code generation or environment tuning often enough that you really want a Turing complete expression syntax available.
There is the largely feature compatible muon¹ re-implementation that doesn't require Python, it is packaged in a few distributions too. As in all things of this nature there are some caveats².

It is actually pretty useful to have installed alongside meson, even if just for access to the manpages as documentation.

¹ https://git.sr.ht/~lattis/muon

² https://muon.build/releases/edge/docs/status.html