← board

--widgetset=<name> — the CLI half of widgetset selection

What already works, without this

Selection and the sparse (widgetset x OS) matrix live entirely in lib/pcl/interfaces.pas and are driven by an ordinary define:

pxx -dWIDGETSET_GTK3 ...        # also the default when none is given
pxx -dWIDGETSET_WIN32 ...       # refused, with the reason, at compile time

The default build is byte-identical to an explicit -dWIDGETSET_GTK3, and every unsupported cell is a hard compile error naming the combination and why. All of that is asserted in tools/gui_suite.sh.

What this ticket adds

Only the spelling. --widgetset=gtk3 reads like Lazarus' -ws gtk3 and is what a user coming from Lazarus will reach for; it should set the corresponding WIDGETSET_<NAME> define and change nothing else.

Deliberately NOT part of this: the matrix itself. Keeping the table in interfaces.pas is what makes "adding a widgetset = one arm plus one TWidgetSet subclass" true; teaching the compiler about widgetsets would put half the rule in the wrong repo layer.

Gate

make test + self-host byte-identical; --widgetset=gtk3 produces a binary byte-identical to -dWIDGETSET_GTK3, and --widgetset=nonsense is rejected by name.