id = "xmake"
name = "Xmake"
homepage = "https://xmake.io/"
description = "A cross-platform build utility based on Lua."
executables = ["xmake"]
[dotfiles]
paths = ["~/.xmake/xmakerc.lua", "~/xmakerc.lua"]
exclude = []
secret = []
side_effect = false
[commands]
format = 1
label = "Xmake"
description = "Build or run project targets. Source: xmake's own task definitions (actions/build and actions/run). Configuration, packages and project creation are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.subcommand]]
path = ["build"]
label = "Build targets"
description = "Build the given targets, or all default targets when none are named."
[[commands.subcommand.source]]
id = "src"
kind = "help"
url = "https://raw.githubusercontent.com/xmake-io/xmake/dev/xmake/actions/build/xmake.lua"
revision = "2026-10-27"
evidence = """
usage = "xmake [task] [options] [targets]",
-r, --rebuild Rebuild the target.
-a, --all Build all targets.
-g, --group Build all targets of the given group. It supports path pattern matching.
--dry-run Dry run to build target.
-j, --jobs Set the number of parallel compilation jobs.
targets (positional) The target names. It will build all default targets if this parameter is not specified.
"""
[[commands.subcommand.field]]
id = "targets"
label = "Targets"
type = "string"
position = 0
multiple = true
sources = ["src"]
[[commands.subcommand.field]]
id = "rebuild"
label = "Rebuild"
type = "boolean"
option = ["--rebuild", "-r"]
sources = ["src"]
[[commands.subcommand.field]]
id = "all"
label = "Build all targets"
type = "boolean"
option = ["--all", "-a"]
sources = ["src"]
[[commands.subcommand.field]]
id = "group"
label = "Group"
type = "string"
option = ["--group", "-g"]
sources = ["src"]
[[commands.subcommand.field]]
id = "jobs"
label = "Parallel jobs"
type = "integer"
option = ["--jobs", "-j"]
sources = ["src"]
[[commands.subcommand.field]]
id = "dry_run"
label = "Dry run"
type = "boolean"
option = ["--dry-run"]
sources = ["src"]
[[commands.subcommand.task]]
id = "build"
label = "Build"
fields = ["targets", "jobs"]
[[commands.subcommand.task]]
id = "rebuild"
label = "Rebuild everything"
set = { rebuild = [true] }
fields = ["targets", "rebuild", "jobs"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["targets", "rebuild", "all", "jobs"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["group", "dry_run"]
[[commands.subcommand]]
path = ["run"]
label = "Run a target"
description = "Run a project target, optionally passing arguments to it."
[[commands.subcommand.source]]
id = "src"
kind = "help"
url = "https://raw.githubusercontent.com/xmake-io/xmake/dev/xmake/actions/run/xmake.lua"
revision = "2026-10-27"
evidence = """
usage = "xmake run|r [options] [target] [arguments]",
-d, --debug Run and debug the given target.
-a, --all Run all targets.
-w, --workdir Work directory of running targets, default is folder of targetfile
target (positional) The target name. It will run all default targets if this parameter is not specified.
arguments (positional) The target arguments
"""
[[commands.subcommand.field]]
id = "target"
label = "Target"
type = "string"
position = 0
sources = ["src"]
[[commands.subcommand.field]]
id = "debug"
label = "Run under debugger"
type = "boolean"
option = ["--debug", "-d"]
sources = ["src"]
[[commands.subcommand.field]]
id = "all"
label = "Run all targets"
type = "boolean"
option = ["--all", "-a"]
sources = ["src"]
[[commands.subcommand.field]]
id = "workdir"
label = "Working directory"
type = "path"
option = ["--workdir", "-w"]
path = { kind = "directory", role = "input" }
sources = ["src"]
[[commands.subcommand.task]]
id = "run"
label = "Run"
fields = ["target", "workdir"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["target", "debug", "all", "workdir"]