9 comments

  • MobiusHorizons8 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.
  • lazypenguin3 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
    • warmwaffles17 minutes ago
      I use it for personal projects and I find it substantially easier to mess around with compiling shaders to SPIRV, processing assets, etc... But some of my gripes are, although it _is_ lua, there is some magic fuckery going on. When you specify targets, things for that target need to be close to the definition, and it feels very odd in a lua language to not have `target(&quot;name&quot;, function (ctx) ... end)`.<p>Anyways, not going to die on that hill and I&#x27;ll keep using it because it&#x27;s simple and works well for my needs. One thing I do like is that I am not having to constantly keep a skeleton CMake project around to copy paste and setup.
      • danny0z9 minutes ago
        &gt; not have `target(&quot;name&quot;, function (ctx) ... end)`.<p>It supports this syntax.<p><a href="https:&#x2F;&#x2F;xmake.io&#x2F;guide&#x2F;project-configuration&#x2F;syntax-description.html#optional-scope-configuration-syntax" rel="nofollow">https:&#x2F;&#x2F;xmake.io&#x2F;guide&#x2F;project-configuration&#x2F;syntax-descript...</a><p><pre><code> target(&quot;foo&quot;, function () set_kind(&quot;binary&quot;) add_files(&quot;src&#x2F;*.cpp&quot;) add_defines(&quot;FOO&quot;) end)</code></pre>
        • warmwaffles3 minutes ago
          I did not spot those in the docs. Thanks a ton. This will help my autoformatter not completely wreck my files.
  • skavi6 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.<p>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.<p>Can anyone provide a head to head comparison?<p>Does xmake strictly enforce declared dependencies? Do actions run in their own sandboxes?<p>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?
  • rhet0rica2 hours ago
    I am deeply distressed that this doesn&#x27;t require Xlib.
  • rienbdj5 hours ago
    Can anyone explain xmake in terms of Build Systems a la Carte?
  • wsve8 hours ago
    At my work we use MSBuild and vcpkg. What would a transition from that to XMake be like?
    • janjones7 hours ago
      Then you are already using XMake (albeit a different one than OP), it&#x27;s the original codename for MSBuild, still present in the code: <a href="https:&#x2F;&#x2F;github.com&#x2F;dotnet&#x2F;msbuild&#x2F;blob&#x2F;main&#x2F;src&#x2F;MSBuild&#x2F;XMake.cs" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;dotnet&#x2F;msbuild&#x2F;blob&#x2F;main&#x2F;src&#x2F;MSBuild&#x2F;XMak...</a> :)
      • debugnik6 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.
        • janjones6 hours ago
          Clarified my comment a bit, thanks
    • pjmlp6 hours ago
      As far as I am aware, there no integrations available with Visual Studio, and not sure about C++20 modules and <i>import std</i> support.
      • ziotom7823 minutes ago
        A few weeks ago I decided to test C++ modules, but I had a hard time to figure out how to make them accepted by CMake. After a few days of struggle with `set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD &quot;d0edc3af-4c50-42ea-a356-e2862fe7a444&quot;)` (it was so hard to find the right UUID that worked with my version) and errors on `import std;`, I decided to give XMake a chance.<p>It took just a couple of minutes to have a working example that fully supported C++ modules <i>and</i> `import std`:<p><pre><code> set_languages(&quot;c++23&quot;) add_rules(&quot;mode.debug&quot;, &quot;mode.release&quot;) target(&quot;mytest&quot;) set_kind(&quot;static&quot;) add_files(&quot;src&#x2F;*.cpp&quot;) add_files(&quot;src&#x2F;*.cppm&quot;, {public = true}) set_policy(&quot;build.c++.modules&quot;, true)</code></pre>
      • danny0z5 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.<p><a href="https:&#x2F;&#x2F;xmake.io&#x2F;guide&#x2F;extensions&#x2F;builtin-plugins.html#generate-visualstudio-project" rel="nofollow">https:&#x2F;&#x2F;xmake.io&#x2F;guide&#x2F;extensions&#x2F;builtin-plugins.html#gener...</a><p>C++ Modules examples:<p><a href="https:&#x2F;&#x2F;xmake.io&#x2F;examples&#x2F;cpp&#x2F;cxx-modules.html" rel="nofollow">https:&#x2F;&#x2F;xmake.io&#x2F;examples&#x2F;cpp&#x2F;cxx-modules.html</a><p><a href="https:&#x2F;&#x2F;github.com&#x2F;xmake-io&#x2F;xmake&#x2F;tree&#x2F;dev&#x2F;tests&#x2F;projects&#x2F;c%2B%2B&#x2F;modules" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;xmake-io&#x2F;xmake&#x2F;tree&#x2F;dev&#x2F;tests&#x2F;projects&#x2F;c%...</a>
        • pjmlp2 hours ago
          Thanks for the information.
      • delta_p_delta_x6 hours ago
        &gt; not sure about C++20 modules and import std support<p>XMake supports both.
  • IshKebab7 hours ago
    My work uses this and it&#x27;s slooooooow. Would not recommend.
    • elitepleb6 hours ago
      the command file generator is usually last to blame for a slow compile, making it output a cmake&#x2F;ninja&#x2F;make project would not speed up a poorly structured compilation tree at all
      • junon6 hours ago
        I don&#x27;t believe xmake is a command file generator, is it?
        • elitepleb6 hours ago
          it has a feature to output such files, see <a href="https:&#x2F;&#x2F;github.com&#x2F;xmake-io&#x2F;xmake?tab=readme-ov-file#generate-ide-project-file-pluginmakefile-vs2002---vs2026--" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;xmake-io&#x2F;xmake?tab=readme-ov-file#generat...</a>
    • willaaaaaaa4 hours ago
      is that so? my experience&#x27;s quite good
  • richrichardsson5 hours ago
    I apologise for this:<p>What&#x27;s wrong with premake which is also Lua based?<p>when I meant:<p>What advantage does this have over premake which is also Lua based?
    • fsw4 hours ago
      For one, the last official stable release of premake is from 2010.
    • rienbdj5 hours ago
      What’s wrong with xmake which is also Lua based?
      • gjvc4 hours ago
        <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=46511599">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=46511599</a> similar reasoning
        • richrichardsson4 hours ago
          I honestly didn&#x27;t mean it like that, but I can understand that it comes across that way.<p>A better wording would be &quot;what advantage does this have over premake which is also Lua based&quot;.
          • nottorp2 hours ago
            Tbh, why does it matter what it&#x27;s written in? Does it do the job?
            • MobiusHorizons14 minutes ago
              Lua is the syntax in the build configuration file, not how the tool is implemented internally. It’s part of the developer experience.
  • roman_soldier6 hours ago
    [dead]