mirror of
https://github.com/AeThex-Corporation/AeThex-OS.git
synced 2026-04-17 22:27:19 +00:00
174 lines
3.9 KiB
Markdown
174 lines
3.9 KiB
Markdown
# 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/
|