{
  "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
    },
    "subcommand": [
      {
        "path": [
          "build"
        ],
        "label": "Build targets",
        "description": "Build the given targets, or all default targets when none are named.",
        "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]\",\n-r, --rebuild  Rebuild the target.\n-a, --all  Build all targets.\n-g, --group  Build all targets of the given group. It supports path pattern matching.\n--dry-run  Dry run to build target.\n-j, --jobs  Set the number of parallel compilation jobs.\ntargets (positional)  The target names. It will build all default targets if this parameter is not specified.\n"
          }
        ],
        "field": [
          {
            "id": "targets",
            "label": "Targets",
            "type": "string",
            "position": 0,
            "multiple": true,
            "sources": [
              "src"
            ]
          },
          {
            "id": "rebuild",
            "label": "Rebuild",
            "type": "boolean",
            "option": [
              "--rebuild",
              "-r"
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "all",
            "label": "Build all targets",
            "type": "boolean",
            "option": [
              "--all",
              "-a"
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "group",
            "label": "Group",
            "type": "string",
            "option": [
              "--group",
              "-g"
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "jobs",
            "label": "Parallel jobs",
            "type": "integer",
            "option": [
              "--jobs",
              "-j"
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "dry_run",
            "label": "Dry run",
            "type": "boolean",
            "option": [
              "--dry-run"
            ],
            "sources": [
              "src"
            ]
          }
        ],
        "task": [
          {
            "id": "build",
            "label": "Build",
            "fields": [
              "targets",
              "jobs"
            ]
          },
          {
            "id": "rebuild",
            "label": "Rebuild everything",
            "set": {
              "rebuild": [
                true
              ]
            },
            "fields": [
              "targets",
              "rebuild",
              "jobs"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "targets",
              "rebuild",
              "all",
              "jobs"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "group",
              "dry_run"
            ]
          }
        ]
      },
      {
        "path": [
          "run"
        ],
        "label": "Run a target",
        "description": "Run a project target, optionally passing arguments to it.",
        "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]\",\n-d, --debug  Run and debug the given target.\n-a, --all  Run all targets.\n-w, --workdir  Work directory of running targets, default is folder of targetfile\ntarget (positional)  The target name. It will run all default targets if this parameter is not specified.\narguments (positional)  The target arguments\n"
          }
        ],
        "field": [
          {
            "id": "target",
            "label": "Target",
            "type": "string",
            "position": 0,
            "sources": [
              "src"
            ]
          },
          {
            "id": "debug",
            "label": "Run under debugger",
            "type": "boolean",
            "option": [
              "--debug",
              "-d"
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "all",
            "label": "Run all targets",
            "type": "boolean",
            "option": [
              "--all",
              "-a"
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "workdir",
            "label": "Working directory",
            "type": "path",
            "option": [
              "--workdir",
              "-w"
            ],
            "path": {
              "kind": "directory",
              "role": "input"
            },
            "sources": [
              "src"
            ]
          }
        ],
        "task": [
          {
            "id": "run",
            "label": "Run",
            "fields": [
              "target",
              "workdir"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "target",
              "debug",
              "all",
              "workdir"
            ]
          }
        ]
      }
    ]
  }
}
