# AeThex Launcher Build Configuration ## Platform-Specific Build Instructions ### Prerequisites **All Platforms:** - Node.js 18+ (https://nodejs.org/) - npm or yarn - Rust toolchain (https://rustup.rs/) **Windows:** - Visual Studio Build Tools or Visual Studio with C++ workload - WebView2 Runtime (usually pre-installed on Windows 11) **macOS:** - Xcode Command Line Tools: `xcode-select --install` - macOS 10.15+ for building **Linux (Ubuntu/Debian):** ```bash sudo apt update sudo apt install libwebkit2gtk-4.1-dev \ build-essential \ curl \ wget \ file \ libxdo-dev \ libssl-dev \ libayatana-appindicator3-dev \ librsvg2-dev ``` **Linux (Fedora/RHEL):** ```bash sudo dnf install webkit2gtk4.1-devel \ openssl-devel \ curl \ wget \ file \ libappindicator-gtk3-devel \ librsvg2-devel ``` **Linux (Arch):** ```bash sudo pacman -Syu sudo pacman -S webkit2gtk-4.1 \ base-devel \ curl \ wget \ file \ openssl \ appmenu-gtk-module \ gtk3 \ libappindicator-gtk3 \ librsvg ``` ### Building #### Quick Build (Current Platform) ```bash # Unix/Linux/macOS ./build-launcher.sh # Windows (PowerShell) .\build-launcher.ps1 ``` #### Manual Build Process ```bash # Install dependencies npm install # Build web app npm run build # Build desktop app npm run tauri:build ``` #### Development Mode ```bash # Run in development mode with hot reload npm run tauri:dev ``` ### Build Outputs **Windows:** - `.msi` installer: `src-tauri/target/release/bundle/msi/` - `.exe` executable: `src-tauri/target/release/aethex-os.exe` **macOS:** - `.dmg` installer: `src-tauri/target/release/bundle/dmg/` - `.app` bundle: `src-tauri/target/release/bundle/macos/` **Linux:** - `.deb` package: `src-tauri/target/release/bundle/deb/` - `.AppImage`: `src-tauri/target/release/bundle/appimage/` - `.rpm` package: `src-tauri/target/release/bundle/rpm/` ### Cross-Platform Building Tauri does not support true cross-compilation. To build for different platforms: 1. **Build on the target platform** (recommended) 2. Use GitHub Actions or CI/CD for automated multi-platform builds 3. Use platform-specific VMs or cloud services ### CI/CD Configuration See `.github/workflows/build-launcher.yml` for automated builds using GitHub Actions. ### Code Signing **Windows:** ```bash # Sign the MSI installer signtool sign /f certificate.pfx /p password /t http://timestamp.digicert.com src-tauri/target/release/bundle/msi/*.msi ``` **macOS:** ```bash # Sign and notarize the app codesign --deep --force --verify --verbose --sign "Developer ID Application: Your Name" --options runtime "src-tauri/target/release/bundle/macos/AeThex OS.app" ``` **Linux:** No code signing required, but you may want to sign packages with GPG. ### Distribution - **Windows**: Distribute `.msi` installer - **macOS**: Distribute `.dmg` installer - **Linux**: Distribute `.AppImage` for universal compatibility, or `.deb`/`.rpm` for specific distros ### Troubleshooting **Build fails on Windows:** - Ensure Visual Studio Build Tools are installed - Try running from Visual Studio Developer Command Prompt **Build fails on macOS:** - Install Xcode Command Line Tools - Accept Xcode license: `sudo xcodebuild -license accept` **Build fails on Linux:** - Install all required system libraries (see Prerequisites) - Check that webkit2gtk-4.1 is available (not 4.0) ### Auto-Updates The launcher includes auto-update functionality. Configure the update server in `src-tauri/tauri.conf.json`: ```json { "plugins": { "updater": { "active": true, "endpoints": ["https://releases.aethex.com/{{target}}/{{arch}}/{{current_version}}"] } } } ``` See Tauri updater documentation for more details: https://v2.tauri.app/plugin/updater/ ### Resources - Tauri Documentation: https://v2.tauri.app/ - Tauri Prerequisites: https://v2.tauri.app/start/prerequisites/ - Build Configuration: https://v2.tauri.app/reference/config/