Use when running parallel / async work inside xmake scripts — async.runjobs for parallel job execution, async.jobgraph (DAG) for dependency-ordered jobs, async.jobpool (tree structure), core.base.scheduler coroutine scheduling, semaphores, and onbuildfiles(..., {jobgraph = true}) in rules. For running external compile…
Use when emitting colored/styled output from xmake.lua or custom tasks/plugins via cprint / cprintf, or when the user wants to disable colors (XMAKECOLORTERM=nocolor, --theme=plain). Covers the ${...} color tag syntax, all color names, truecolor, emoji, and the disable knobs.
Use when authoring a custom xmake plugin / task — defining task(...) with setmenu, running logic in onrun, packaging as a standalone plugin under /.xmake/plugins/ or inside an xmake-repo, using import() to reuse xmake core modules, and distributing plugins. Complements the lighter xmake-plugins skill which covers…
Use when writing xmake scripts that need a generic graph / DAG data structure — core.base.graph for directed or undirected graphs, adding vertices/edges, topological sort, cycle detection, cloning, reversing. Lower-level than async.jobgraph — use this when you need the graph but not the scheduler.
Use when writing custom logic in xmake.lua and you need the day-to-day script-domain APIs — os. (exec/cp/mv/ls/getenv), io. (readfile/writefile/lines), path. (join/basename/translate), table. (xmake-extended), string., hash., print/cprint/vprint, try/catch, raise. Reference of what's always available without import().
Use when setting up or running tests in an Xmake project — declaring test cases with addtests, running them via xmake test, and wiring unit-test frameworks like gtest/catch2/doctest.
Use when running or adding xmake's own unit tests — working in the xmake-io/xmake source tree, invoking xmake l tests/run.lua [testname], writing new test files under tests/, and integrating with srcenv.profile. Not for testing your own project — that's xmake-tests.
Use when the user is cross-compiling a C/C++ project with xmake — targeting Android/iOS/embedded/MinGW/WASM, pointing at an SDK/NDK root, overriding cc/cxx/ld/ar, selecting a built-in cross toolchain, or defining a custom toolchain in xmake.lua. Covers the full xmake f flag set and common SDK layouts. For generic…
Use when building C++20 modules with xmake — setting up .mpp/.cppm/.ixx sources, enabling build.c++.modules, configuring per-compiler quirks (clang/gcc/msvc), moduleonly libraries, and distributing module packages. Covers typical project layouts for executable/library/headeronly/moduleonly targets.