Xmake: A cross-platform build utility based on Lua
64 points
by phmx
4 days ago
| 8 comments
| xmake.io
| HN
lazypenguin
2 hours ago
[-]
A teammate evaluated this and the experience was night and day compared to cmake + vcpkg. However, there wasn’t a lot of motivation to cutover our existing large project over because of the unknown unknowns. I think projects like these looking to dethrone the status quo definitely need some case studies or examples of larger projects using it to increase confidence because I’d much rather use xmake over cmake if it can get the job done
reply
MobiusHorizons
6 hours ago
[-]
I think a syntax example on the homepage would be a good idea. Also comparison charts for things like cmake, ninja, meson, and bazel. If you have a dependency finding strategy, highlight the pros and cons of that. Basically the only reason states for why I should use this is lua, and that’s not inherently compelling to me for build tooling.
reply
rhet0rica
23 minutes ago
[-]
I am deeply distressed that this doesn't require Xlib.
reply
skavi
4 hours ago
[-]
Just yesterday someone was telling me xmake does a lot of what bazel can do (hermetic, deterministic, optionally remote builds) while being easier to use.

I took a look at the docs later and couldn’t find a direct comparison. But there does seem to be a remote build system. And there were a few mentions of sandboxing.

Can anyone provide a head to head comparison?

Does xmake strictly enforce declared dependencies? Do actions run in their own sandboxes?

Can you define a target whose dependency tree is multi language, multi toolchain, multi target platform and which is built across multiple remote execution servers?

reply
rienbdj
3 hours ago
[-]
Can anyone explain xmake in terms of Build Systems a la Carte?
reply
wsve
6 hours ago
[-]
At my work we use MSBuild and vcpkg. What would a transition from that to XMake be like?
reply
janjones
6 hours ago
[-]
Then you are already using XMake (albeit a different one than OP), it's the original codename for MSBuild, still present in the code: https://github.com/dotnet/msbuild/blob/main/src/MSBuild/XMak... :)
reply
debugnik
5 hours ago
[-]
Your phrasing could confuse readers: MSBuild happened to historically have XMake as a codename but is entirely unrelated to the build system known as XMake.
reply
janjones
4 hours ago
[-]
Clarified my comment a bit, thanks
reply
pjmlp
5 hours ago
[-]
As far as I am aware, there no integrations available with Visual Studio, and not sure about C++20 modules and import std support.
reply
danny0z
3 hours ago
[-]
It can generate a Visual Studio project, then use the xmake CLI to integrate and compile the project, and supports debugging and IntelliSense.

https://xmake.io/guide/extensions/builtin-plugins.html#gener...

C++ Modules examples:

https://xmake.io/examples/cpp/cxx-modules.html

https://github.com/xmake-io/xmake/tree/dev/tests/projects/c%...

reply
pjmlp
54 minutes ago
[-]
Thanks for the information.
reply
delta_p_delta_x
5 hours ago
[-]
> not sure about C++20 modules and import std support

XMake supports both.

reply
IshKebab
5 hours ago
[-]
My work uses this and it's slooooooow. Would not recommend.
reply
elitepleb
5 hours ago
[-]
the command file generator is usually last to blame for a slow compile, making it output a cmake/ninja/make project would not speed up a poorly structured compilation tree at all
reply
junon
4 hours ago
[-]
I don't believe xmake is a command file generator, is it?
reply
elitepleb
4 hours ago
[-]
it has a feature to output such files, see https://github.com/xmake-io/xmake?tab=readme-ov-file#generat...
reply
richrichardsson
4 hours ago
[-]
I apologise for this:

What's wrong with premake which is also Lua based?

when I meant:

What advantage does this have over premake which is also Lua based?

reply
fsw
3 hours ago
[-]
For one, the last official stable release of premake is from 2010.
reply
rienbdj
3 hours ago
[-]
What’s wrong with xmake which is also Lua based?
reply
gjvc
3 hours ago
[-]
reply
richrichardsson
2 hours ago
[-]
I honestly didn't mean it like that, but I can understand that it comes across that way.

A better wording would be "what advantage does this have over premake which is also Lua based".

reply
nottorp
32 minutes ago
[-]
Tbh, why does it matter what it's written in? Does it do the job?
reply