---
name: "xmake"
section: "1"
platform: "linux"
package: "xmake"
version: "2.9.9+ds-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/xmake"
---

# xmake(1)

cross-platform build utility based on Lua

## NAME

xmake - cross-platform build utility based on Lua

## SYNOPSIS

**xmake** \[*task*\] \[*options*\] \[*target*\]

## DESCRIPTION

**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.

## ACTIONS

- **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**

  Create a new project.

- **q, require**

  Install and update required packages.

- **update**

  Update and uninstall the xmake program.

- **f, config**

  Configure the project.

## PLUGINS

- **plugin**

  Manage plugins of xmake.

- **m, macro**

  Run the given macro.

- **doxygen**

  Generate the doxygen document.

- **l, lua**

  Run the lua script.

- **repo**

  Manage package repositories.

- **service**

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

- **project**

  Generate the project file.

- **show**

  Show the given project information.

## OPTIONS

- **-q, --quiet**

  Quiet operation.

- **-y, --yes**

  Input yes by default if need user confirm.

- **--confirm**=*CONFIRM*

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

- **-v, --verbose**

  Print lots of verbose information for users.

- **--root**

  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

- **--version**

  Print the version number and exit.

- **-h, --help**

  Print this help message and exit.

- **-F** *FILE***, --file=***FILE*

  Read a given **xmake.lua** file.

- **-P** *PROJECT***, --project=***PROJECT*

  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**

  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.

- **--files=***FILES*

  Build the given source files.

  e.g.

  ```
    - 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'
  ```

- **target**

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

## AUTHOR

**xmake** is written by ruki ⟨waruqi@\\:gmail.com⟩.

This manual page was written by Yangfl ⟨mmyangfl@\\:gmail.com⟩ for the Debian Project (and may be used by others).
