xmake - Man Page

cross-platform build utility based on Lua


xmake [task] [options] [target]


xmake is a lightweight cross-platform build utility based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more concise and intuitive. It is very friendly to novices and can quickly get started in a short time. Let users focus more on actual project development.


b, build

Build targets if no given tasks.

u, uninstall

Uninstall the project binary files.

p, package

Package target.

r, run

Run the project target.

g, global

Configure the global options for xmake.

i, install

Package and install the target binary files.

c, clean

Remove all binary and temporary files.


Create a new project.

q, require

Install and update required packages.


Update and uninstall the xmake program.

f, config

Configure the project.



Manage plugins of xmake.

m, macro

Run the given macro.


Generate the doxygen document.

l, lua

Run the lua script.


Manage package repositories.


Start service for remote or distributed compilation and etc. (Experimental, still in development)


Generate the project file.


Show the given project information.


-q,  --quiet

Quiet operation.

-y,  --yes

Input yes by default if need user confirm.


Input the given result if need user confirm.
 - yes
 - no
 - def

-v,  --verbose

Print lots of verbose information for users.


Allow one to run xmake as root.

-D,  --diagnosis

Print lots of diagnosis information (backtrace, check info ..) only for developers. And we can append -v to get more whole information.
 e.g. $ xmake -vD


Print the version number and exit.

-h,  --help

Print this help message and exit.

-F FILE, --file=FILE

Read a given xmake.lua file.


Change to the given project directory. Search priority:
 1. The Given Command Argument
 2. The Environment Variable: XMAKE_PROJECT_DIR
 3. The Current Directory

Build Options

-b, --build

Build target. This is default building mode and optional.

-r, --rebuild

Rebuild the target.

-a, --all

Build all targets.


Dry run to build target.

-j JOBS, --jobs=JOBS

Specifies the number of jobs to build simultaneously. (default: 6)

-w, --warning

Enable the warnings output.


Build the given source files.


  - xmake --files=src/main.c
  - xmake --files='src/*.c' [target]
  - xmake --files='src/**c|excluded_file.c'
  - xmake --files='src/main.c:src/test.c'

The target name. It will build all default targets if this parameter is not specified.


xmake is written by ruki.

This manual page was written by Yangfl for the Debian Project (and may be used by others).