====== Installation and Configuration ====== This guide describes the complete setup of WvdS FPC RAD Studio for VS Code. ===== Prerequisites ===== ==== Visual Studio Code ==== Install VS Code from [[https://code.visualstudio.com/|code.visualstudio.com]]. Minimum version: 1.85.0. Check your installed version: code --version ==== Free Pascal Compiler (FPC) ==== **Option A: Lazarus Bundle (recommended)** The Lazarus IDE includes FPC. Download: [[https://www.lazarus-ide.org/|lazarus-ide.org]] Typical installation paths: * Windows: ''%LAZARUS%\fpc\3.2.2\bin\i386-win32\fpc.exe'' * Linux: ''/usr/lib/fpc/3.2.2/fpc'' * macOS: ''/usr/local/lib/fpc/3.2.2/fpc'' **Option B: Standalone FPC** Download: [[https://www.freepascal.org/download.html|freepascal.org]] Verification: fpc -iV Expected output: ''3.2.2'' or higher. ==== pas2js (for Web Projects) ==== pas2js is the Pascal-to-JavaScript transpiler for browser and Node.js applications. **Installation via Lazarus:** Search for "pas2js" in the Lazarus Online Package Manager and install it. **Manual Installation:** Download: [[https://wiki.freepascal.org/pas2js|wiki.freepascal.org/pas2js]] Verification: pas2js -h ==== Optional Tools ==== ^ Tool ^ Usage ^ Download ^ | lazbuild | Compile Lazarus projects (.lpi) without IDE | Included in Lazarus | | Inno Setup | Create Windows installers | [[https://jrsoftware.org/isinfo.php|jrsoftware.org]] | | GNU make | Execute Makefiles | Included in MinGW/MSYS2 | ===== Extension Installation ===== ==== Method 1: VS Code Marketplace ==== - Open VS Code - Click on the Extensions icon (''Ctrl+Shift+X'') - Search for "WvdS FPC" - Install the desired extensions: * **WvdS VSCode Core** - Required * **WvdS VSCode Build** - Recommended * **WvdS VSCode Projects** - Recommended * **WvdS VSCode UI Designer** - For PXAML development * **WvdS VSCode UI Meta** - For IntelliSense * **WvdS VSCode UI Preview** - For live preview * **WvdS VSCode Packaging** - For VSIX creation ==== Method 2: Command Line ==== # Basic installation code --install-extension wvds.wvds-vscode-core code --install-extension wvds.wvds-vscode-build code --install-extension wvds.wvds-vscode-projects # UI development code --install-extension wvds.wvds-vscode-ui-designer code --install-extension wvds.wvds-vscode-ui-meta code --install-extension wvds.wvds-vscode-ui-preview # Packaging code --install-extension wvds.wvds-vscode-packaging ==== Method 3: VSIX File ==== For offline installation or internal distribution: - Download the .vsix files - In VS Code: ''Extensions'' -> ''...'' -> ''Install from VSIX...'' - Select the .vsix file ===== Toolchain Configuration ===== After installing the Core extension, the compiler paths must be configured. ==== Automatic Detection ==== The suite attempts to automatically find installed tools: - Open the Command Palette: ''Ctrl+Shift+P'' - Run: ''WvdS: Toolchain Configuration...'' - The dialog shows detected tools with green checkmarks - Tools not found are marked in red ==== Manual Configuration ==== If automatic detection fails, paths can be set manually: **Via Settings UI:** ''File'' -> ''Preferences'' -> ''Settings'' -> Search for "wvds.toolchain" **Via settings.json:** Use environment variables instead of absolute paths for better portability. { "wvds.toolchain.fpcPath": "${env:LAZARUS}/fpc/3.2.2/bin/i386-win32/fpc.exe", "wvds.toolchain.pas2jsPath": "${env:LAZARUS}/fpc/3.2.2/bin/i386-win32/pas2js.exe", "wvds.toolchain.lazbuildPath": "${env:LAZARUS}/lazbuild.exe", "wvds.toolchain.innoSetupPath": "${env:PROGRAMFILES(X86)}/Inno Setup 6/ISCC.exe", "wvds.toolchain.makePath": "${env:MSYS2}/usr/bin/make.exe" } ==== Settings in Detail ==== ^ Setting ^ Description ^ Default ^ | ''wvds.toolchain.fpcPath'' | Path to fpc.exe / fpc | Auto-detection | | ''wvds.toolchain.pas2jsPath'' | Path to pas2js.exe / pas2js | Auto-detection | | ''wvds.toolchain.lazbuildPath'' | Path to lazbuild.exe / lazbuild | Auto-detection | | ''wvds.toolchain.innoSetupPath'' | Path to ISCC.exe | Auto-detection | | ''wvds.toolchain.makePath'' | Path to make.exe / make | Auto-detection | | ''wvds.toolchain.wslEnabled'' | WSL for Linux cross-compilation | false | | ''wvds.toolchain.wslDistribution'' | WSL distribution (e.g. Ubuntu-22.04) | "" | ===== WSL Support (Windows) ===== For cross-compilation on Windows, WSL can be enabled: ==== Prerequisites ==== - WSL 2 with a Linux distribution installed (Ubuntu recommended) - FPC installed in the WSL environment ==== Activation ==== { "wvds.toolchain.wslEnabled": true, "wvds.toolchain.wslDistribution": "Ubuntu-22.04" } ==== Usage ==== With WSL enabled, the Linux FPC is used for Linux targets, while the Windows FPC remains active for Windows targets. ===== Verification ===== Verify your installation: - Open the Command Palette: ''Ctrl+Shift+P'' - Run: ''WVDS: Show Version Info'' - The Output Channel shows all detected tools and versions Expected output (paths vary by installation): WvdS FPC RAD Studio v0.1.0 -------------------------- FPC: 3.2.2 (%LAZARUS%\fpc\3.2.2\bin\i386-win32\fpc.exe) pas2js: 2.2.0 (%LAZARUS%\fpc\3.2.2\bin\i386-win32\pas2js.exe) lazbuild: 3.4 (%LAZARUS%\lazbuild.exe) Inno Setup: 6.2.2 (%PROGRAMFILES(X86)%\Inno Setup 6\ISCC.exe) ===== Troubleshooting ===== ==== "FPC not found" ==== **Cause:** FPC is not installed or the path is incorrect. **Solution:** - Install FPC or Lazarus - Set ''wvds.toolchain.fpcPath'' manually - Ensure the path points to the .exe/.bin, not the folder ==== "pas2js not found" ==== **Cause:** pas2js was not installed with Lazarus. **Solution:** - Install pas2js via the Lazarus Package Manager - Or download pas2js manually - Set ''wvds.toolchain.pas2jsPath'' ==== Extension Does Not Start ==== **Cause:** Dependencies not met. **Solution:** - Ensure ''wvds-vscode-core'' is installed - Check VS Code version (minimum 1.85.0) - Restart VS Code ==== Compilation Fails ==== **Cause:** Missing units or incorrect paths. **Solution:** - Check the FPC output in the Terminal - Ensure all unit paths are correct - Check project settings ===== Next Steps ===== * [[.:projects|Create Your First Project]] * [[.:build|Understanding Build Configuration]] * [[.:core|Core Extension in Detail]]