Xmake: A cross-platform build utility based on Lua

Overall impressions of Xmake

  • Many commenters find Xmake’s UX appealing: simple project creation, fast builds, and integrated dependency management via xrepo.
  • Some already use it for personal projects while retaining CMake for work due to ecosystem inertia and tooling support.
  • A few see it as a strong “if I still wrote C/C++ I’d use this” contender.

Workflow and usability

  • Praised for one-command project setup (xmake create) and straightforward build/run flow.
  • Single self-contained binary is viewed as a plus versus tools requiring Python or larger stacks.
  • Claimed to support iOS/macOS command-line builds, including signing, while avoiding direct use of Xcode.

Comparison with CMake and other build systems

  • CMake is seen as the de facto standard across platforms, especially for C++, largely due to IDE integration and first-mover advantage, but is widely described as ugly, complex, and fragile.
  • Some prefer Meson for its declarative DSL and lower cognitive load; others prefer full languages (Lua, Python) for flexibility, warning that the “escape hatch” can become a liability in large projects.
  • Bazel is mentioned as a win for very large monorepos due to remote caching and build farms, but considered overkill for most.
  • Zig’s build system is cited as another integrated alternative for C/C++-heavy projects.

Dependency management debates

  • Xmake’s xrepo is praised as simpler than juggling CMake + submodules + external package managers.
  • Extensive discussion around CMake + vcpkg:
    • Some argue modern CMake/vcpkg flows are not that hard and provide private registries, overlay ports, and binary caching.
    • Others report frequent friction: missing packages, custom patches, special build flags, huge storage/time overhead for large dependency stacks.
    • Submodules are criticized as fragile but still widely used; some defend them as convenient for local patching.

C++ modules support

  • One contributor states Xmake’s C++20 modules support (including import std, multiple compilers, header units, and module-aware packages) is ahead of CMake’s current state.
  • Others are skeptical of any tool claiming “full” module support, noting broader ecosystem and tooling gaps.

Installation and safety concerns

  • Pipe-from-curl installer is criticized as unsafe and hard to audit; some argue package managers or explicit stepwise instructions are preferable.
  • Defenders note not all users have up-to-date system packages, and Xmake is packaged in some distros.