HNHacker News
TopNewBestAskShowJobs

waruqi

391 karma · joined January 1, 2016

https://tboox.org https://xmake.io https://github.com/tboox
submissionscomments
waruqi··on Xmake and C/C++ Package Management
https://github.com/xmake-io/xmake-idea

https://plugins.jetbrains.com/plugin/17406-xmake

waruqi··on C Package Manager
xmake also support clib, https://xmake.io/#/package/remote_package?id=add-clib-depend...
waruqi··on Zig 0.9.0
Great, we can also use Xmake to build zig program. https://xmake.io/#/guide/project_examples?id=zig-program
waruqi··on Xmake v2.5.8 is released, Support Pascal Swig program and Lua53 runtime
Thanks, we plan to use lua5.4 runtime by default in the next version.
waruqi··on Please – A cross-language build system
I prefer xmake

https://github.com/xmake-io/xmake

waruqi··on Show HN: Xrepo – A modern cross-platform C/C++ package manager
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.

waruqi··on Show HN: Xrepo – A modern cross-platform C/C++ package manager
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 ..
waruqi··on Show HN: A cross-platform c/c++ build utility based on Lua
you can see https://tboox.org/2019/05/29/xmake-vs-cmake/
waruqi··on Show HN: A cross-platform c/c++ build utility based on Lua
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.

waruqi··on LTUI – A cross platform terminal UI library based on Lua
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.
waruqi··on LTUI – A cross platform terminal UI library based on Lua
The visual configuration menu used in xmake is ltui.

    xmake f --menu
https://github.com/tboox/xmake
waruqi··on Xmake v2.3.2 released, Build C/C++ program as fast as ninja
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")
waruqi··on An Introduction to Modern CMake
The dev branch version is already as fast as ninja now, and there is no additional step to generate a makefile/build.ninja.
waruqi··on An Introduction to Modern CMake
Or we can also try xmake. https://xmake.io/
waruqi··on Xmake v2.2.9 released, Add experimental support for C++ 20 modules
A project example:

    add_requires("libuv master", "ffmpeg", "zlib 1.20.*", "tbox >1.6.1")
    target("test")
        set_kind("binary")
        add_files("src/*.c")
        add_packages("libuv", "ffmpeg", "tbox", "zlib")
waruqi··on Xmake Getting Started Tutorial 4: C/C++ project description settings
Xmake is very easy to use, welcome everyone to try it. Thanks!
waruqi··on Show HN: A Modern C/C++ build tools (Simple, Fast, Cross-platform)
xmake can also support to generatr other project file. e.g. makefile vsproj cmakelist compile_command and etc.

  xmake project -k makefile
  xmake project -k vs2019
  xmake project -k cmakelist
  xmake project -k vsxmake 
  ...
waruqi··on Show HN: A Modern C/C++ build tools (Simple, Fast, Cross-platform)
Ok, I will look at it. Thanks!
waruqi··on Show HN: A Modern C/C++ build tools (Simple, Fast, Cross-platform)
Ok, I will look at it, as far as I know, cmake seems to be more popular than bazel. At least I rarely see projects that use bazel, although I don’t like the syntax of cmake very much.
waruqi··on Show HN: A Modern C/C++ build tools (Simple, Fast, Cross-platform)
I haven't compared it to bazel, but if you like the description style of xmake for the project or you like lua, you can try it.
waruqi··on Show HN: A Modern C/C++ build tools (Simple, Fast, Cross-platform)
yes.
waruqi··on Show HN: A Modern C/C++ build tools (Simple, Fast, Cross-platform)
Xmake built-in luajit, without any external dependencies, can be used after installation, although most distributions have built-in python, but there are still many systems that do not install python by default, such as windows.

Also I don't like the syntax of python

waruqi··on Show HN: A Modern C/C++ build tools (Simple, Fast, Cross-platform)
Yes.
waruqi··on Show HN: A Modern C/C++ build tools (Simple, Fast, Cross-platform)
Xmake has its own package management repository.https://github.com/xmake-io/xmake-repo

And it also supports self-built distributed repositories and third-party repositories (e.g. vcpkg, conan, clib, homebrew).

  add_requires("libuv master", "ffmpeg", "zlib 1.20.*")
  add_requires("tbox >1.6.1", {optional = true, debug = true})
  target("test")
    set_kind("shared")
    add_files("src/*.c")
    add_packages("libuv", "ffmpeg", "tbox", "zlib")
waruqi··on C/C++ package dependency management for xmake
Support to install and use multi-platform dependent package (android, iphoneos and etc). see https://github.com/xmake-io/xmake-repo/blob/0e4a905bd8dbe198...
waruqi··on Tbox: A GLib-like cross-platform C library
I have fix these headers in dev branch. Thank you for reminding.
waruqi··on Tbox: A GLib-like cross-platform C library
Even if the function code is very short, I still like to define and declare variables nearby.

Unless a function has only two lines of code.

waruqi··on Tbox: A GLib-like cross-platform C library
C89 cannot mix variable declarations and code.

    printf("Hello World!\n");
    int x = 7;
    printf("%d!\n", x);
    return 0;

This is a very serious restriction for me.
waruqi··on Tbox: A GLib-like cross-platform C library
There are some tests in the demo (https://github.com/tboox/tbox/tree/master/src/demo), but I still don't have time to write complete test cases. I'm sorry.
waruqi··on Tbox: A GLib-like cross-platform C library
Yes.
Page 1 of 3Next →