- -

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

- -

- -

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

- -

- -

Support platforms

- - - -

Support Languages

- - - -

Support Projects

- - - -

Builtin Plugins

- -

Macros script plugin

- -
$ xmake m -b                        # start to record
-$ xmake f -p iphoneos -m debug
-$ xmake 
-$ xmake f -p android --ndk=~/files/android-ndk-r16b
-$ 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") 
-    if is_mode("debug") then
-        add_defines("DEBUG")
-    end
-
-
- -

Download and use remote packages:

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

Find and use local packages:

- -
target("test")
-    set_kind("shared")
-    add_files("src/*.c")
-    on_load(function (target)
-        import("lib.detect.find_package")
-        target:add(find_package("zlib"))
-        target:add(find_package("openssl"))
-    end)
-
-
- -

Project Examples

- -

Some projects using xmake:

- - - -

Example Video

- -

- -

- -

Contacts

- - - - - - - -