| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- # Build script for Tauri application(OpenSSL 静态链接进 exe,无需 libcrypto DLL)
- [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
- $ErrorActionPreference = "Stop"
- $ProjectRoot = $PSScriptRoot
- $APIUrl = "http://125.122.32.114:9000"
- # OpenSSL 静态链接(与 .cargo/config.toml +crt-static 一致)
- . (Join-Path $ProjectRoot "scripts\set-openssl-static-env.ps1")
- Set-Location $ProjectRoot
- Write-Host "========================================"
- Write-Host " Building Tauri App (static OpenSSL)"
- Write-Host "========================================"
- Write-Host ""
- Write-Host "Checking Rust..."
- if (-not (Get-Command rustc -ErrorAction SilentlyContinue)) {
- Write-Host "ERROR: Rust not found!"
- exit 1
- }
- Write-Host " Rust OK"
- Write-Host "Checking Node.js..."
- if (-not (Get-Command node -ErrorAction SilentlyContinue)) {
- Write-Host "ERROR: Node.js not found!"
- exit 1
- }
- Write-Host " Node OK"
- Write-Host ""
- Write-Host "OpenSSL static linking:"
- Write-Host " OPENSSL_DIR=$env:OPENSSL_DIR"
- Write-Host " OPENSSL_LIB_DIR=$env:OPENSSL_LIB_DIR"
- Write-Host " OPENSSL_STATIC=$env:OPENSSL_STATIC"
- Write-Host ""
- Write-Host "Setting API URL: $APIUrl"
- $env:DEFAULT_BACKEND_API_URL = $APIUrl
- Write-Host ""
- Write-Host "Installing dependencies..."
- npm install --silent
- Write-Host ""
- Write-Host "Building Tauri application..."
- Write-Host ""
- $startTime = Get-Date
- npm run tauri build
- if ($LASTEXITCODE -ne 0) {
- Write-Host ""
- Write-Host "BUILD FAILED!" -ForegroundColor Red
- exit 1
- }
- $endTime = Get-Date
- $duration = New-TimeSpan -Start $startTime -End $endTime
- Write-Host ""
- Write-Host "========================================"
- Write-Host " BUILD SUCCESS!" -ForegroundColor Green
- Write-Host "========================================"
- Write-Host ""
- Write-Host "Duration: $($duration.ToString('mm\:ss'))"
- Write-Host "API URL: $APIUrl"
- Write-Host ""
- $exe = Get-ChildItem "src-tauri\target\release" -Filter "*.exe" -File -ErrorAction SilentlyContinue |
- Where-Object { $_.DirectoryName -like "*release" -and $_.Length -gt 5MB } |
- Sort-Object Length -Descending | Select-Object -First 1
- if ($exe) {
- $size = "{0:N2} MB" -f ($exe.Length / 1MB)
- Write-Host "Standalone EXE:"
- Write-Host " $($exe.FullName)" -ForegroundColor Green
- Write-Host " Size: $size"
- }
- $nsisFiles = Get-ChildItem -Path "src-tauri\target\release\bundle\nsis" -Filter "*setup.exe" -ErrorAction SilentlyContinue
- if ($nsisFiles) {
- Write-Host ""
- Write-Host "NSIS Installer:"
- foreach ($nsis in $nsisFiles) {
- $size = "{0:N2} MB" -f ($nsis.Length / 1MB)
- Write-Host " $($nsis.FullName)" -ForegroundColor Cyan
- Write-Host " Size: $size"
- }
- }
- Write-Host ""
- Write-Host "Build complete!"
|