38 lines
1.6 KiB
PowerShell
38 lines
1.6 KiB
PowerShell
# This script builds the Tauri application for Portmaster on Windows.
|
|
# It optionally builds the required Angular tauri-builtin project first.
|
|
# The script assumes that all necessary dependencies (Node.js, Rust, etc.) are installed.
|
|
# Output file: dist/portmaster.exe
|
|
|
|
# Store original directory and find project root
|
|
$originalDir = Get-Location
|
|
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
$projectRoot = (Get-Item $scriptDir).Parent.Parent.Parent.FullName
|
|
|
|
# Create output directory
|
|
$outputDir = Join-Path $scriptDir "dist"
|
|
New-Item -ItemType Directory -Path $outputDir -Force | Out-Null
|
|
|
|
# Ask if user wants to build the Angular tauri-builtin project
|
|
if ((Read-Host "Build Angular tauri-builtin project? (Y/N, default: Y)") -notmatch '^[Nn]$') {
|
|
# Navigate to Angular project
|
|
Set-Location (Join-Path $projectRoot "desktop\angular")
|
|
|
|
# Build tauri-builtin project
|
|
ng build --configuration production --base-href / tauri-builtin
|
|
if ($LASTEXITCODE -ne 0) { Set-Location $originalDir; exit $LASTEXITCODE }
|
|
}
|
|
|
|
# Navigate to Tauri project directory
|
|
Set-Location (Join-Path $projectRoot "desktop\tauri\src-tauri")
|
|
|
|
# Build Tauri project for Windows
|
|
cargo tauri build --no-bundle
|
|
if ($LASTEXITCODE -ne 0) { Set-Location $originalDir; exit $LASTEXITCODE }
|
|
|
|
# Copy the output files to the script's dist directory
|
|
$tauriOutput = Join-Path (Get-Location) "target\release"
|
|
Copy-Item -Path "$tauriOutput\portmaster.exe" -Destination $outputDir -Force
|
|
|
|
# Return to original directory
|
|
Set-Location $originalDir
|
|
Write-Host "Build completed successfully: $outputDir\portmaster.exe" -ForegroundColor Green |