6 ms·
Benefits over meson? I found no unique features from skimming the docs.
by eska 7y ago
Benefits over meson? I found no unique features from skimming the docs.
- jdc 7y agoIt doesn't depend on Python.
- ComputerGuru 7y agoPeople are downvoting but it’s 100% true. A build system targeting primarily C/C++ requiring an interpreter and runtime dependencies is a no-go for quite a number of projects. There’s a reason they were written in C/C++ in the first place, and the fact that a lot of people install via packages (separating build from distribution) is scarcely solace.
- SahAssar 7y agoBut lua requires a runtime and an interpreter, right?
- ComputerGuru 7y agolua is unique because it can be embedded into C applications as a library, e.g. the difference between SQLite and MySQL. For example, there's an nginx module that lets you use lua to configure the server logic. I'm presuming you don't need to have lua installed to use xmake (i.e. batteries included), otherwise you're a hundred percent correct.
- wruza 7y agoI don’t get it honestly and never did. On Linux-likes deps are installed by a pm, and chances are you already have python for various reasons. The same goes for Lua. On msw there is more routine, since you don’t have a pm, and have to install everything by hand (+PATH) or choose a pm and begin dealing with its nuances. The same for Lua and xmake. What’s the difference beyond non-C/++ impurity?
- ComputerGuru 7y agoI come from FreeBSD where we have an amazing package manager but a “keep it lean” mentality. If a package isn’t on the package manager (the repo is great but nowhere near as expansive as Debian or Fedora) or if I want to build from source, I shouldn’t need to install such a huge system dependency.
- wruza 7y agoOh, that made me nostalgic of that portupgrade-oniguruma-ruby 20+ minute dep build phase.
- ComputerGuru 7y agoIn case you’re not aware, the FreeBSD package manager switched to binary packages a while back. No more compilation unless you want to change from the defaults.
- pixelmonkey 7y agoI believe xmake doesn't "require" Lua. Instead, xmake embeds Lua. Specifically it embeds LuaJIT 2.1, based on what I could tell in their repo source. So, when you run xmake, you're actually running a a full-blown Lua implementation that is self-contained in the xmake binary, that has some automatic imports for the xmake embedded build DSL. If you want to run arbitrary Lua using xmake, there is a built-in "lua" plugin, shorthand "xmake l", described here: https://github.com/xmake-io/xmake/blob/master/README.md#run-the-custom-lua-script-plugin https://github.com/xmake-io/xmake/blob/master/README.md#run-... So, it would be a bit like if you built a build language atop Python, but rather than depending on Python, you made your whole build tool embed the entire CPython interpreter, pinned to some version. Lua is used in this way more commonly than Python is, of course. So: xmake itself is just a C program with large submodules written in Lua, running inside that embedded Lua context. The upside here is that xmake's releases are just plain platform-specific native binaries that bundle everything you need, and that make no assumptions about your base system. This is a nice benefit in a build tool, as it aids in reproducible builds.
- quietbritishjim 7y agoPython can be embedded into C applications as a library.
- dvdkon 7y agoThe build file is a full Lua script, unlike Meson's limited DSL, which you might see as an upside or downside.