Installation
via curl
bash <(curl -fsSL https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh)
via wget
bash <(wget https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh -O -)
via powershell
Invoke-Expression (Invoke-Webrequest 'https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.ps1' -UseBasicParsing).Content
Simple description

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
Menu configuration
$ xmake f --menu

Support platforms
- Windows (x86, x64)
- Macosx (i386, x86_64)
- Linux (i386, x86_64, cross-toolchains …)
- Android (armv5te, armv6, armv7-a, armv8-a, arm64-v8a)
- iPhoneOS (armv7, armv7s, arm64, i386, x86_64)
- WatchOS (armv7k, i386)
- Mingw (i386, x86_64)
Support Languages
- C/C++
- Objc/Objc++
- Swift
- Assembly
- Golang
- Rust
- Dlang
- Cuda
Support Projects
- Static Library
- Shared Library
- Console
- Cuda Program
- Qt Application
- WDK Driver (umdf/kmdf/wdm)
- WinSDK Application
Builtin Plugins
Macros script plugin
$ xmake m -b # start to record
$ xmake f -p iphoneos -m debug
$ xmake
$ xmake m -e # stop to record
$ xmake m . # playback commands
Run the custom lua script plugin
$ xmake l ./test.lua
$ xmake l -c "print('hello xmake!')"
$ xmake l lib.detect.find_tool gcc
Generate IDE project file plugin(makefile, vs2002 - vs2017 .. )
$ xmake project -k vs2017 -m "debug,release"
Generate doxygen document plugin
$ xmake doxygen [srcdir]
More Plugins
Please download and install from the plugins repository xmake-plugins.
IDE/Editor Integration



More Examples
Debug and release modes:
add_rules("mode.debug", "mode.release")
target("console")
set_kind("binary")
add_files("src/*.c")
Custom script:
target("test")
set_kind("static")
add_files("src/*.cpp")
after_build(function (target)
print("build %s ok!", target:targetfile())
end)
Extension Modules:
target("test")
set_kind("shared")
add_files("src/*.c")
on_load(function (target)
import("lib.detect.find_package")
target:add(find_package("zlib"))
end)
Project Examples
Some projects using xmake:
Example Video
Contacts
- Email:waruqi@gmail.com
- Homepage:tboox.org
- Community:/r/tboox on reddit
- ChatRoom:Char on telegram, Chat on gitter
- Source Code:Github, Gitee
Support us