Introduction (Chinese)

xmake is a make-like 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 the productivity boost when developing and building project.

If you want to known more, please refer to:

  • Documents
  • Github
  • HomePage

Simple description

target("console")
    set_kind("binary")
    add_files("src/*.c") Copy the code

Run target

$ xmake run consoleCopy the code

Support features

  • Tasks
  • Macros
  • Actions
  • Options
  • Plugins
  • Templates

Support Languages

  • C/C++
  • Objc/Objc++
  • Swift
  • Assembly
  • Golang
  • Rust
  • Dlang

Examples

Create a c++ console project:

    xmake create -l c++ -t 1 console
 or xmake create --language=c++ --template=1 consoleCopy the code

Project xmakefile: xmake.lua

target("console")
    set_kind("binary")
    add_files("src/*.c") Copy the code

Configure project:

This is optional, if you compile the targets only for linux, macosx and windows and the default compilation mode is release.

   xmake f -p iphoneos -m debug
or xmake f --plat=macosx --arch=x86_64
or xmake f -p windows
or xmake config --plat=iphoneos --mode=debug
or xmake config --plat=android --arch=armv7-a --ndk=xxxxx
or xmake config -p linux -a i386
or xmake config -p mingw --cross=i386-mingw32- --toolchains=/xxx/bin
or xmake config -p mingw --sdk=/mingwsdk
or xmake config --helpCopy the code

Compile the project:

   xmake
or xmake -r
or xmake --rebuildCopy the code

Run the target:

   xmake r console
or xmake run consoleCopy the code

The Debug target:

   xmake r -d console
or xmake run -d consoleCopy the code

Package all:

   xmake p
or xmake package
or xmake package console
or xmake package -o /tmp
or xmake package --output=/tmpCopy the code

Package all archs using macro:

   xmake m package 
or xmake m package -p iphoneos
or xmake m package -p macosx -f "-m debug" -o /tmp/
or xmake m package --helpCopy the code

Install the targets:

   xmake i
or xmake install
or xmake install console
or xmake install -o /tmp
or xmake install --output=/tmpCopy the code

If you need known more detailed usage, please refer to documents or run:

   xmake -h
or xmake --help
or xmake config --help
or xmake package --help
or xmake macro --help
...Copy the code

The simple xmake.lua file:

-- the debug mode
if is_mode("debug") then
    
    -- enable the debug symbols
    set_symbols("debug")

    -- disable optimization
    set_optimize("none")
end

-- the release mode
if is_mode("release") then

    -- set the symbols visibility: hidden
    set_symbols("hidden")

    -- enable fastest optimization
    set_optimize("fastest")

    -- strip all symbols
    set_strip("all")
end

-- add target
target("test")

    -- set kind
    set_kind("static")

    -- add files
    add_files("src/*.c") Copy the code

If you want to know more, please refer to:

Documents

Projects

Some projects using xmake:

Contacts