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
xrepois 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.