xmake is a lightweight cross-platform build utility based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more concise and intuitive. It is very friendly to novices and can quickly get started in a short time. Let users focus more on actual project development.
What's new in 3.1.2+20261016
New features - #7742: Support Clang reduced-BMI compilation - #7791: Add xmake test --output-on-failure - #7854: Add Inno Setup packaging and set_displayicon support - #7758: Support custom downloaders and improve aria2 reliability - #7792: Support configs.configdirs for pkgconfig:: packages - #7799: Support VERSION_PRERELEASE and semver VERSION_BUILD in config files - #7808: Support C++23 with nvcc - #7766: Add raddbg support on Linux - #7743: Expose more native Lua functions through lib.lua.* - #7752: Support Unicode escapes in the pure Lua JSON decoder Changes - #7852: Suppress unused-argument warnings for clang-cl - #7855: Update MATLAB version detection through R2026b - #7767: Warn when cached project settings shadow a local project - #7780: Remove built-in Gitee and GitCode mirrors - #7860: Add standalone addon distribution examples - #7800: Improve isnan invalid-input tests - Update the bundled tbox - Update Ubuntu PPA targets and NetBSD CI dependencies - Update PowerShell installer and RPM version metadata - Add repository development conventions in AGENTS.md Bugs fixed - #7750: Fix Clang modules and compilation databases with MSVC environments - #7770: Preserve MSVC system includes in clangd compilation databases - #7849: Remove unused include flags when compiling Clang PCMs to objects - #7788: Fix C++ module caches across build modes and project generation - #7815: Fix clang-cl PCH dependency tracking - #7819: Disable compiler caching for MSVC PCH creation - #7798: Avoid unnecessary static re-archiving and stale merged archive members - #7820: Prevent repository updates from resetting user projects and recover interrupted clones - #7776: Fix recognition of locally installed addons - #7809: Fix local-repository paths when installing and upgrading addons - #7821: Activate the required version of installed addons - #7761: Preserve usable MSVC environments when toolset detection fails - #7813: Fix Ascend C toolchain detection and unchecked SDK loading - #7853: Fix gxx/gcc tool and flag matching - #7763: Enable C++ exceptions by default for clang-cl packages - #7779: Include compiler runtime paths during Windows and MinGW package installation - #7782: Fix MIDL detection when cross-compiling to ARM64 - #7772: Fix Qt debug library names on HarmonyOS - #7789: Fix Homebrew package discovery for latest versions - #7760: Fix quoted flags and Windows paths in the Conan generator - #7857: Pass selected toolchains to Make-based package builds …