xmake

一个基于 Lua 的跨平台构建工具。「🔥 A cross-platform build utility based on Lua」

Github星跟蹤圖

Introduction (中文)

xmake is a cross-platform build utility based on lua.

The project focuses on making development and building easier and provides many features (e.g package, install, plugin, macro, action, option, task ...),
so that any developer can quickly pick it up and enjoy a productivity boost when developing and building projects.

If you want to know more, please refer to:

Installation

via curl

bash <(curl -fsSL https://cdn.jsdelivr.net/gh/xmake-io/xmake@master/scripts/get.sh)

via wget

bash <(wget https://cdn.jsdelivr.net/gh/xmake-io/xmake@master/scripts/get.sh -O -)

via powershell

Invoke-Expression (Invoke-Webrequest 'https://cdn.jsdelivr.net/gh/xmake-io/xmake@master/scripts/get.ps1' -UseBasicParsing).Content

Simple description

Package dependences

An official xmake package repository: xmake-repo

Build project

$ xmake

Run target

$ xmake run console

Debug target

$ xmake run -d console

Configure platform

$ xmake f -p [windows, linux, macosx, android, iphoneos ..] -a [x86, arm64 ..] -m [debug, release]
$ xmake
$ xmake f --menu

Package management

Download and build

Processing architecture

Supported platforms

  • Windows (x86, x64)
  • macOS (i386, x86_64)
  • Linux (i386, x86_64, cross-toolchains ...)
  • Android (armv5te, armv6, armv7-a, armv8-a, arm64-v8a)
  • iOS (armv7, armv7s, arm64, i386, x86_64)
  • WatchOS (armv7k, i386)
  • MinGW (i386, x86_64)

Supported Languages

  • C
  • C++
  • Objective-C and Objective-C++
  • Swift
  • Assembly
  • Golang
  • Rust
  • Dlang
  • Cuda

Supported Projects

  • Static Library
  • Shared Library
  • Console
  • Cuda Program
  • Qt Application
  • WDK Driver (umdf/kmdf/wdm)
  • WinSDK Application
  • MFC Application

More Examples

Debug and release modes:

add_rules("mode.debug", "mode.release")

target("console")
    set_kind("binary")
    add_files("src/*.c")
    if is_mode("debug") then
        add_defines("DEBUG")
    end

Custom scripts:

target("test")
    set_kind("binary")
    add_files("src/*.c")
    after_build(function (target)
        print("hello: %s", target:name())
        os.exec("echo %s", target:targetfile())
    end)

Download and use packages in xmake-repo or third-party repositories:

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")

Qt QuickApp Program:

target("test")
    add_rules("qt.quickapp")
    add_files("src/*.cpp")
    add_files("src/qml.qrc")

Cuda Program:

target("test")
    set_kind("binary")
    add_files("src/*.cu")
    add_cugencodes("native")
    add_cugencodes("compute_30")

WDK/UMDF Driver Program:

target("echo")
    add_rules("wdk.driver", "wdk.env.umdf")
    add_files("driver/*.c") 
    add_files("driver/*.inx")
    add_includedirs("exe")

target("app")
    add_rules("wdk.binary", "wdk.env.umdf")
    add_files("exe/*.cpp")

More wdk driver program examples (umdf/kmdf/wdm), please see WDK Program Examples

Plugins

Generate IDE project file plugin(makefile, vs2002 - vs2019 .. )

$ xmake project -k vsxmake -m "debug;release" # New vsproj generator (Recommended)
$ xmake project -k vs -m "debug;release"
$ xmake project -k cmakelists
$ xmake project -k compile_commands

Run the custom lua script plugin

$ xmake l ./test.lua
$ xmake l -c "print('hello xmake!')"
$ xmake l lib.detect.find_tool gcc
$ xmake l
> print("hello xmake!")
> {1, 2, 3}
< { 
    1,
    2,
    3 
  }

More builtin plugins, please see: Builtin plugins

Please download and install more other plugins from the plugins repository xmake-plugins.

IDE/Editor Integration

Project Examples

Some projects using xmake:

Example Video

Contacts

Thanks

This project exists thanks to all the people who have contributed:

Backers

Thank you to all our backers! ? [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]










主要指標

概覽
名稱與所有者xmake-io/xmake
主編程語言Lua
編程語言C (語言數: 43)
平台
許可證Apache License 2.0
所有者活动
創建於2015-04-23 03:37:31
推送於2025-06-12 01:59:07
最后一次提交2025-06-12 09:08:02
發布數79
最新版本名稱v2.9.9 (發布於 )
第一版名稱v1.0.1 (發布於 )
用户参与
星數11.1k
關注者數140
派生數848
提交數16.1k
已啟用問題?
問題數3598
打開的問題數199
拉請求數1516
打開的拉請求數7
關閉的拉請求數149
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?