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
target("console")
set_kind("binary")
add_files("src/*.c")
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
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:
if is_mode("debug") then
set_symbols("debug")
set_optimize("none")
end
if is_mode("release") then
set_symbols("hidden")
set_optimize("fastest")
set_strip("all")
end
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:Forum on reddit
- ChatRoom:/r/tboox on gitter
- Source Code:Github, Gitee
Support us