Target di build

WvdS FPC RAD Studio supporta diversi target di build per piattaforme differenti.

Panoramica

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

Target GUI

Applicazioni desktop native con interfaccia grafica.

Tecnologia

  • Compilatore: Free Pascal Compiler (FPC)
  • UI Framework: LCL (Lazarus Component Library)
  • Output: .exe (Windows), Binary (Linux/macOS)

Rendering PXAML

PXAML → IR → GUI Renderer → Controlli LCL

Controlli supportati:

  • Tutti i controlli standard LCL
  • Controlli WvdS personalizzati
  • Widget nativi per piattaforma

Configurazione build

[build]
target=gui
platform=windows-x64
 
[gui]
widgetset=win32  # oppure: gtk2, qt5, cocoa

Target TUI

Interfacce utente basate su terminale per server e CLI.

Tecnologia

  • Compilatore: Free Pascal Compiler (FPC)
  • UI Framework: WvdS TUI Framework
  • Output: Binary nativo con output ANSI/VT100

Rendering PXAML

PXAML → IR → TUI Renderer → Sequenze escape ANSI

Controlli supportati:

  • TextBlock, Label
  • TextBox (input singola riga)
  • Button (con navigazione tastiera)
  • ListBox, Table
  • ProgressBar
  • Border, Panel

Configurazione build

[build]
target=tui
platform=linux-x64
 
[tui]
colors=256  # oppure: 16, truecolor
unicode=true

Target Web

Applicazioni browser tramite transpilazione pas2js.

Tecnologia

  • Compilatore: pas2js
  • Output: Bundle JavaScript
  • Runtime: Browser, Electron, PWA

Rendering PXAML

PXAML → IR → Web Renderer → DOM/CSS

Controlli supportati:

  • Tutti i controlli nativi HTML
  • Styling basato su CSS
  • Layout Flexbox/Grid

Configurazione build

[build]
target=web
platform=browser
 
[web]
minify=true
sourcemaps=true

Target Extension

Estensioni VS Code in Pascal.

Tecnologia

  • Compilatore: pas2js
  • Output: Modulo CommonJS
  • Runtime: VS Code Extension Host (Node.js)

Particolarita

  • Nessun accesso DOM
  • API VS Code disponibile
  • WebView per UI

Configurazione build

[build]
target=extension
platform=vscode
 
[extension]
minversion=1.85.0

Matrice piattaforme

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

Condivisione codice

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}

Vedi anche

Zuletzt geändert: il 29/01/2026 alle 22:30