WvdS FPC RAD Studio podpira različne cilje gradnje za različne platforme.
| Cilj | Prevajalnik | Izhod | Izvajalno okolje |
|---|---|---|---|
| GUI | FPC | Naravna binarna datoteka | Namizje (Windows/Linux/macOS) |
| TUI | FPC | Naravna binarna datoteka | Terminal |
| Web | pas2js | JavaScript | Brskalnik/Node.js |
| Extension | pas2js | JavaScript | VS Code Extension Host |
Naravne namizne aplikacije z grafičnim uporabniškim vmesnikom.
PXAML → IR → GUI upodabljalnik → LCL kontrolniki
Podprti kontrolniki:
[build] target=gui platform=windows-x64 [gui] widgetset=win32 # ali: gtk2, qt5, cocoa
Uporabniški vmesniki v terminalu za strežnike in CLI.
PXAML → IR → TUI upodabljalnik → ANSI ubežne sekvence
Podprti kontrolniki:
[build] target=tui platform=linux-x64 [tui] colors=256 # ali: 16, truecolor unicode=true
Brskalniške aplikacije prek pas2js transpilacije.
PXAML → IR → Web upodabljalnik → DOM/CSS
Podprti kontrolniki:
[build] target=web platform=browser [web] minify=true sourcemaps=true
VS Code razširitve v Pascalu.
[build] target=extension platform=vscode [extension] minversion=1.85.0
| Funkcionalnost | GUI | TUI | Web | Extension |
|---|---|---|---|---|
| Okna | Da | Ne | Da | WebView |
| Dialogi | Da | Omejeno | Da | Quick Input |
| Meniji | Da | Ne | Da | Contributes |
| Dostop do datotek | Da | Da | Omejeno | Da |
| Omrežje | Da | Da | CORS | Da |
| Večnitnost | Da | Da | Web Workers | Ne |
Skupna koda za vse cilje je v sources/common/:
sources/common/ ├── core/ # Osnovni tipi, pripomočki ├── ui/ │ ├── controls/ # Abstrakcija kontrolnikov │ ├── runtime/ # PXAML izvajalno okolje │ └── targets/ │ ├── gui/ # GUI specifično │ ├── tui/ # TUI specifično │ └── web/ # Web specifično
Pogojna kompilacija:
{$IFDEF TARGET_GUI} uses LCLType, Forms; {$ENDIF} {$IFDEF TARGET_WEB} uses JS, Web; {$ENDIF} {$IFDEF TARGET_TUI} uses WvdS.TUI.Console; {$ENDIF}