News for hackers. Stuff that matters.

waruqi

Re:C Package Manager on Friday March 11, 2022 @09:46PM (#30648536)
Re:Zig 0.9.0 on Monday December 20, 2021 @09:12PM (#29633016)
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.
Re:Please – A cross-language build system on Monday November 30, 2020 @01:28AM (#25251228)
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.

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 ..
Re:Show HN: A cross-platform c/c++ build utility based on Lua on Thursday August 06, 2020 @08:30PM (#24076815)
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.
The visual configuration menu used in xmake is ltui.

    xmake f --menu
https://github.com/tboox/xmake
A simple example with package dependences

    add_requires("tbox >1.6.1", "libuv master", "vcpkg::ffmpeg", "brew::pcre2/libpcre2-8")
    add_requires("conan::OpenSSL/1.0.2n@conan/stable", {alias = "openssl", optional = true, debug = true}) 
    target("test")
        set_kind("binary")
        add_files("src/*.c")
        add_packages("tbox", "libuv", "vcpkg::ffmpeg", "brew::pcre2/libpcre2-8", "openssl")
Re:An Introduction to Modern CMake on Saturday March 14, 2020 @11:12PM (#22580902)
The dev branch version is already as fast as ninja now, and there is no additional step to generate a makefile/build.ninja.

Older »