WvdS FPC RAD Studio supporta diversi target di build per piattaforme differenti.
| Target | Compilatore | Output | Ambiente runtime |
|---|---|---|---|
| GUI | FPC | Binary nativo | Desktop (Windows/Linux/macOS) |
| TUI | FPC | Binary nativo | Terminale |
| Web | pas2js | JavaScript | Browser/Node.js |
| Extension | pas2js | JavaScript | VS Code Extension Host |
Applicazioni desktop native con interfaccia grafica.
PXAML → IR → GUI Renderer → Controlli LCL
Controlli supportati:
[build] target=gui platform=windows-x64 [gui] widgetset=win32 # oppure: gtk2, qt5, cocoa
Interfacce utente basate su terminale per server e CLI.
PXAML → IR → TUI Renderer → Sequenze escape ANSI
Controlli supportati:
[build] target=tui platform=linux-x64 [tui] colors=256 # oppure: 16, truecolor unicode=true
Applicazioni browser tramite transpilazione pas2js.
PXAML → IR → Web Renderer → DOM/CSS
Controlli supportati:
[build] target=web platform=browser [web] minify=true sourcemaps=true
Estensioni VS Code in Pascal.
[build] target=extension platform=vscode [extension] minversion=1.85.0
| Funzionalita | GUI | TUI | Web | Extension |
|---|---|---|---|---|
| Finestre | Si | No | Si | WebView |
| Dialoghi | Si | Limitato | Si | Quick Input |
| Menu | Si | No | Si | Contributes |
| Accesso file | Si | Si | Limitato | Si |
| Rete | Si | Si | CORS | Si |
| Multi-threading | Si | Si | Web Workers | No |
Il codice comune per tutti i target si trova in sources/common/:
sources/common/ ├── core/ # Tipi base, utility ├── ui/ │ ├── controls/ # Astrazione controlli │ ├── runtime/ # Runtime PXAML │ └── targets/ │ ├── gui/ # Specifico GUI │ ├── tui/ # Specifico TUI │ └── web/ # Specifico Web
Compilazione condizionale:
{$IFDEF TARGET_GUI} uses LCLType, Forms; {$ENDIF} {$IFDEF TARGET_WEB} uses JS, Web; {$ENDIF} {$IFDEF TARGET_TUI} uses WvdS.TUI.Console; {$ENDIF}