Hacker Newsnew | past | comments | ask | show | jobs | submit | waruqi's commentslogin



Great, we can also use Xmake to build zig program. https://xmake.io/#/guide/project_examples?id=zig-program


Thanks, we plan to use lua5.4 runtime by default in the next version.



cmake is just a project generator, it does not have its own build system and package management.

and xmake = make + project generator + package manager

In addition, I don't like cmake's DSL syntax, which is very tedious and difficult to maintain.


>>In addition, I don't like cmake's DSL syntax, which is very tedious and difficult to maintain.

I don't agree that Cmake is difficult and hard to maintain.

I do believe that most people write complete messes in their makefile so that they become brittle and hard to maintain.

The so called "modern Cmake" approach, with its declarative approach to project files, is delightful to work with, unlike the old and beaten imperative based path of forcing Cmake to be a glorified scripting language when it never was.


This. Many PRs that introduce CMake tend to be massive rats nests of configuration slurry that could be summed up in a tenth of the LOC.


Xmake does not depend on msvc and msbuild at all, it has its own independent build system, and the build speed is as fast as ninja, and on windows, it can use other compilers to compile the project, such as: clang, tinycc ..



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.

It can compile the project directly like Make/Ninja, or generate project files like CMake/Meson, and it also has a built-in package management system to help users solve the integrated use of C/C++ dependent libraries.


1. No docs now, you need see source codes. e.g. tests/*.lua 2. Perhaps you need call coroutine.yield or other coroutine/wait methods to program:loop() to support two event loops.


Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact