====== Razvojno okruženje ====== Pregled strukture projekta i važnih putanja za WvdS FPC RAD Studio. **Tilda (~)** predstavlja korijen repozitorija (npr. ''%WORKSPACE%/WvdS.FPC''). Sve putanje koriste Forward-Slasheve. ===== Struktura projekta ===== ~/ ├── sources/ # SSOT - verzionirano (SVN) │ ├── common/ # Shared Units/Libs (FPC + pas2js) │ │ ├── core/ # Bazne Units (bez UI) │ │ ├── ui/ # UI Framework │ │ │ ├── controls/ # Bazni Controls │ │ │ ├── components/ # Composite Components │ │ │ ├── runtime/ # PXAML Runtime │ │ │ └── targets/ # Renderer (tui/gui/web) │ │ └── web/ # Host Bridges (samo pas2js) │ │ ├── nodejs/ # Node.js APIs │ │ └── vscode/ # VSCode Extension APIs │ ├── extensions/ # VSIX Packs │ ├── applications/ # Proizvodi/Demos │ ├── tools/ # wvds-build, pxamlc │ └── packages/ # IDE Packages │ ├── binaries/ # Build Outputs - NIJE verzionirano │ ├── out/ # Build outputs │ ├── cache/ # Compiler caches │ ├── dist/ # Release artifacts (.vsix) │ └── logs/ # Build reports, debug logs │ └── assets/ # Statički assets ===== Putanje projekta ===== ^ Varijabla ^ Putanja ^ Opis ^ | ''~'' | Korijen repozitorija | ''%WORKSPACE%/WvdS.FPC'' | | ''~/sources'' | Izvorni kod | Single Source of Truth | | ''~/sources/common'' | Shared Code | FPC + pas2js kompatibilan | | ''~/sources/extensions'' | VSIX Extensions | VSCode paketi | | ''~/sources/applications'' | Aplikacije | RAD Suite, Demos | | ''~/binaries'' | Build Output | Može se izbrisati, regenerabilno | | ''~/binaries/dist'' | Release | .vsix, Installer | | ''~/binaries/logs'' | Logs | Build-Reports, Debug-Logs | | ''~/assets'' | Assets | Icons, Templates | ===== Varijable okruženja ===== Ove varijable su **placeholder** i moraju se prilagoditi lokalnom razvojnom okruženju. Apsolutne putanje treba izbjegavati u konfiguracijskim datotekama. ^ Varijabla ^ Standardna vrijednost ^ Opis ^ | ''%LAZARUS%'' | Lazarus-instalacija | npr. ''C:\Lazarus'' ili ''/opt/lazarus'' | | ''%PROGRAMFILES%'' | Program Files | Windows: ''C:\Program Files'' | | ''%USERPROFILE%'' | Korisnički direktorij | Windows: ''C:\Users\{name}'', Linux: ''~'' | | ''%WORKSPACE%'' | Radni direktorij | Korisnički definirano, npr. ''E:\Workspace'' | ===== Compiler i Toolchain ===== ^ Varijabla ^ Relativna putanja ^ Opis ^ | FPC | ''%LAZARUS%/fpc/3.3.1/bin'' | Free Pascal Compiler | | FPC-SRC | ''%LAZARUS%/fpc/3.3.1/source'' | FPC izvorni kod | | PAS2JS | ''%LAZARUS%/fpc/3.3.1/bin/pas2js.exe'' | Pascal u 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 Bindings | | P2J-VSCODE | ''%LAZARUS%/fpc/pas2js-windows-2.2.0/packages/vscode'' | VSCode Bindings | ===== Vanjske reference ===== Ove putanje su **opcionalne** i relevantne samo za razvojne programere koji žele proučavati referentne implementacije. ^ Varijabla ^ Relativna putanja ^ 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 izvorni kod | | VSCODE-SRC | ''%WORKSPACE%/3rd/vscode-main'' | VSCode izvorni kod | ===== Dokumentacija ===== ^ Varijabla ^ Relativna putanja ^ Opis ^ | DOKUWIKI | ''%DOKUWIKI_DATA%/pages/de/int/vsce/fpc'' | DokuWiki stranice | | SKILLS | ''%WORKSPACE%/WvdS.Rihtlinien'' | Skill-definicije | ===== SSOT-Pravila ===== **Single Source of Truth** - Ova pravila su obavezujuća! - **''~/sources/''** je jedini izvor za verzionirani kod - **''~/binaries/''** se može potpuno izbrisati i regenerirati - **Nikada** ne duplicirajte Runtime-kod u ''~/sources/extensions/'' - **Nikada** ne commitajte generirane datoteke u ''~/sources/'' ===== Build-Output Struktura ===== ~/binaries/out/{app}/{target}/{mode}/ ├── gen/ # Generirani kod (ui.generated.pas) ├── bin/ # Izvršne datoteke / JS Bundle ├── assets/ # PXAML, Images, Themes ├── build-plan.json # Build-Konfiguracija └── build-report.md # Build-Protokol ^ Target ^ Compiler ^ Output ^ | ''tui'' | FPC | Native Console (Windows/Linux) | | ''gui'' | FPC | Native Desktop (LCL/WinAPI) | | ''web'' | pas2js | JavaScript Bundle | ^ Mode ^ Opis ^ | ''debug'' | Debug-simboli, bez optimizacije | | ''release'' | Optimizirano, strippani simboli | | ''profile'' | Release + Profiling | ===== Extension-Struktura ===== ~/sources/extensions/wvds.vscode.{name}/ ├── pas/ │ ├── extension_main.pas # Entry Point (OBAVEZNO) │ ├── {Feature}.Models.pas # Strukture podataka │ ├── {Feature}.Service.pas # Poslovna logika │ └── {Feature}.Dialog.pas # UI (opcionalno) │ ├── dist/ │ ├── extension_main.js # Kompilirani JS │ └── extension_main.js.map # Source Map │ ├── templates/ # WebView Templates ├── images/ # Icons ├── package.json # VSCode Manifest ├── build.cfg # Build-Konfiguracija └── README.md # Dokumentacija ===== Vidi također ===== * [[.:architektur|Pregled arhitekture]] * [[.:build-pipeline|Build-Pipeline]] * [[.:extension-entwicklung|Razvoj Extensiona]]