====== Razvojno okolje ====== Pregled projektne strukture in pomembnih poti za WvdS FPC RAD Studio. **Tilda (~)** predstavlja korensko mapo repozitorija (npr. ''%WORKSPACE%/WvdS.FPC''). Vse poti uporabljajo poševnice naprej. ===== Projektna struktura ===== ~/ ├── sources/ # SSOT - verzioniran (SVN) │ ├── common/ # Deljene enote/knjižnice (FPC + pas2js) │ │ ├── core/ # Osnovne enote (brez UI) │ │ ├── ui/ # UI ogrodje │ │ │ ├── controls/ # Osnovni kontrolniki │ │ │ ├── components/ # Sestavljene komponente │ │ │ ├── runtime/ # PXAML izvajalno okolje │ │ │ └── targets/ # Upodabljalniki (tui/gui/web) │ │ └── web/ # Mostovi gostitelja (samo pas2js) │ │ ├── nodejs/ # Node.js API-ji │ │ └── vscode/ # VSCode Extension API-ji │ ├── extensions/ # VSIX paketi │ ├── applications/ # Produkti/Demo aplikacije │ ├── tools/ # wvds-build, pxamlc │ └── packages/ # IDE paketi │ ├── binaries/ # Izhodne datoteke gradnje - NISO verzioniran │ ├── out/ # Izhodne datoteke gradnje │ ├── cache/ # Predpomnilnik prevajalnika │ ├── dist/ # Izdajni artefakti (.vsix) │ └── logs/ # Poročila gradnje, razhroščevalni dnevniki │ └── assets/ # Statični viri ===== Projektne poti ===== ^ Spremenljivka ^ Pot ^ Opis ^ | ''~'' | Korenski imenik repozitorija | ''%WORKSPACE%/WvdS.FPC'' | | ''~/sources'' | Izvorna koda | Edini vir resnice | | ''~/sources/common'' | Deljena koda | Združljiva s FPC + pas2js | | ''~/sources/extensions'' | VSIX razširitve | VSCode paketi | | ''~/sources/applications'' | Aplikacije | RAD Suite, Demo aplikacije | | ''~/binaries'' | Izhod gradnje | Odvržljivo, ponovno generirano | | ''~/binaries/dist'' | Izdaja | .vsix, namestitveni programi | | ''~/binaries/logs'' | Dnevniki | Poročila gradnje, razhroščevalni dnevniki | | ''~/assets'' | Viri | Ikone, predloge | ===== Okoljske spremenljivke ===== Te spremenljivke so **nadomestki** in jih je treba prilagoditi lokalnemu razvojnemu okolju. Absolutne poti se je treba izogibati v konfiguracijskih datotekah. ^ Spremenljivka ^ Privzeta vrednost ^ Opis ^ | ''%LAZARUS%'' | Namestitev Lazarusa | npr. ''C:\Lazarus'' ali ''/opt/lazarus'' | | ''%PROGRAMFILES%'' | Program Files | Windows: ''C:\Program Files'' | | ''%USERPROFILE%'' | Uporabniški imenik | Windows: ''C:\Users\{ime}'', Linux: ''~'' | | ''%WORKSPACE%'' | Delovni imenik | Po meri uporabnika, npr. ''E:\Workspace'' | ===== Prevajalnik in orodna veriga ===== ^ Spremenljivka ^ Relativna pot ^ Opis ^ | FPC | ''%LAZARUS%/fpc/3.3.1/bin'' | Free Pascal Compiler | | FPC-SRC | ''%LAZARUS%/fpc/3.3.1/source'' | FPC izvorna koda | | PAS2JS | ''%LAZARUS%/fpc/3.3.1/bin/pas2js.exe'' | Pascal v JavaScript | | P2J-RTL | ''%LAZARUS%/fpc/pas2js-windows-2.2.0/packages/rtl'' | pas2js RTL | | P2J-NODE | ''%LAZARUS%/fpc/pas2js-windows-2.2.0/packages/nodejs'' | Node.js vezave | | P2J-VSCODE | ''%LAZARUS%/fpc/pas2js-windows-2.2.0/packages/vscode'' | VSCode vezave | ===== Zunanje reference ===== Te poti so **opcijske** in relevantne samo za razvijalce, ki želijo preučevati referenčne implementacije. ^ Spremenljivka ^ Relativna pot ^ Opis ^ | DXVCL | ''%WORKSPACE%/3rd/DevExpress/VCL'' | DevExpress VCL (Delphi) | | DXNET | ''%PROGRAMFILES%/DevExpress 25.1/Components/Sources'' | DevExpress .NET | | NODEJS-SRC | ''%WORKSPACE%/3rd/node-main'' | Node.js izvorna koda | | VSCODE-SRC | ''%WORKSPACE%/3rd/vscode-main'' | VSCode izvorna koda | ===== Dokumentacija ===== ^ Spremenljivka ^ Relativna pot ^ Opis ^ | DOKUWIKI | ''%DOKUWIKI_DATA%/pages/de/int/vsce/fpc'' | DokuWiki strani | | SKILLS | ''%WORKSPACE%/WvdS.Rihtlinien'' | Definicije veščin | ===== SSOT pravila ===== **Edini vir resnice** - Ta pravila so obvezujoča! - **''~/sources/''** je edini vir za verzionno kodo - **''~/binaries/''** je popolnoma odvržljiv in ponovno generirani - **Nikoli** ne podvajajte izvajalne kode v ''~/sources/extensions/'' - **Nikoli** ne potrjujte generiranih datotek v ''~/sources/'' ===== Struktura izhodnih datotek gradnje ===== ~/binaries/out/{app}/{target}/{mode}/ ├── gen/ # Generirana koda (ui.generated.pas) ├── bin/ # Izvršljive datoteke / JS paket ├── assets/ # PXAML, slike, teme ├── build-plan.json # Konfiguracija gradnje └── build-report.md # Protokol gradnje ^ Cilj ^ Prevajalnik ^ Izhod ^ | ''tui'' | FPC | Naravna konzola (Windows/Linux) | | ''gui'' | FPC | Naravna namizna aplikacija (LCL/WinAPI) | | ''web'' | pas2js | JavaScript paket | ^ Način ^ Opis ^ | ''debug'' | Razhroščevalni simboli, brez optimizacije | | ''release'' | Optimizirano, odstranjeni simboli | | ''profile'' | Release + profiliranje | ===== Struktura razširitve ===== ~/sources/extensions/wvds.vscode.{name}/ ├── pas/ │ ├── extension_main.pas # Vstopna točka (OBVEZNO) │ ├── {Feature}.Models.pas # Podatkovne strukture │ ├── {Feature}.Service.pas # Poslovna logika │ └── {Feature}.Dialog.pas # UI (opcijsko) │ ├── dist/ │ ├── extension_main.js # Prevedeni JS │ └── extension_main.js.map # Izvorna karta │ ├── templates/ # WebView predloge ├── images/ # Ikone ├── package.json # VSCode manifest ├── build.cfg # Konfiguracija gradnje └── README.md # Dokumentacija ===== Glejte tudi ===== * [[.:architektur|Pregled arhitekture]] * [[.:build-pipeline|Cevovod gradnje]] * [[.:extension-entwicklung|Razvoj razširitev]]