$ErrorActionPreference = "Stop" [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 $OpenSSLDir = "C:\Program Files\OpenSSL-Win64" $OpenSSLLibDir = "C:\Program Files\OpenSSL-Win64\lib\VC\x64\MT" $OpenSSLIncludeDir = "C:\Program Files\OpenSSL-Win64\include" Write-Host "Checking OpenSSL at: $OpenSSLDir" if (Test-Path $OpenSSLDir) { Write-Host "[OK] OpenSSL found" -ForegroundColor Green } else { Write-Host "[ERROR] OpenSSL not found at: $OpenSSLDir" -ForegroundColor Red exit 1 } $libcryptoPath = "$OpenSSLLibDir\libcrypto_static.lib" $libsslPath = "$OpenSSLLibDir\libssl_static.lib" if ((Test-Path $libcryptoPath) -and (Test-Path $libsslPath)) { Write-Host "[OK] OpenSSL static libraries found" -ForegroundColor Green } else { Write-Host "[ERROR] OpenSSL static libraries not found" -ForegroundColor Red exit 1 } # Backup original lib files and replace with static versions $backupDir = "$OpenSSLLibDir\backup" New-Item -ItemType Directory -Force -Path $backupDir | Out-Null Copy-Item "$OpenSSLLibDir\libcrypto.lib" "$backupDir\" -Force -ErrorAction SilentlyContinue Copy-Item "$OpenSSLLibDir\libssl.lib" "$backupDir\" -Force -ErrorAction SilentlyContinue Copy-Item "$OpenSSLLibDir\libcrypto_static.lib" "$OpenSSLLibDir\libcrypto.lib" -Force Copy-Item "$OpenSSLLibDir\libssl_static.lib" "$OpenSSLLibDir\libssl.lib" -Force Write-Host "[OK] Replaced lib files with static versions" -ForegroundColor Green # Clean OpenSSL build cache for fresh build Write-Host "Cleaning OpenSSL build cache..." -ForegroundColor Yellow $targetDir = "d:\code\steam\client-tauri\src-tauri\target" Remove-Item "$targetDir\release\build\openssl-sys*" -Recurse -Force -ErrorAction SilentlyContinue Remove-Item "$targetDir\release\deps\openssl*" -Recurse -Force -ErrorAction SilentlyContinue $env:OPENSSL_DIR = $OpenSSLDir $env:OPENSSL_LIB_DIR = $OpenSSLLibDir $env:OPENSSL_INCLUDE_DIR = $OpenSSLIncludeDir $env:OPENSSL_STATIC = "1" $env:RUSTFLAGS = "-C target-feature=+crt-static" Write-Host "" Write-Host "========================================" -ForegroundColor Cyan Write-Host "OpenSSL static linking configured" -ForegroundColor Cyan 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 "========================================" -ForegroundColor Cyan $env:DEFAULT_BACKEND_API_URL = "http://125.122.32.114:9000" $env:TAURI_DEVTOOLS = "1" Write-Host "" Write-Host "Building SteamSH (with DevTools)..." -ForegroundColor Cyan Set-Location "d:\code\steam\client-tauri" npm run tauri build # Restore original lib files if (Test-Path "$backupDir\libcrypto.lib") { Copy-Item "$backupDir\libcrypto.lib" "$OpenSSLLibDir\" -Force Copy-Item "$backupDir\libssl.lib" "$OpenSSLLibDir\" -Force } Remove-Item $backupDir -Recurse -Force -ErrorAction SilentlyContinue Write-Host "" Write-Host "========================================" -ForegroundColor Green Write-Host "Build completed!" -ForegroundColor Green Write-Host "DevTools exe: d:\code\steam\client-tauri\src-tauri\target\release\steamSH.exe" -ForegroundColor Green Write-Host "========================================" -ForegroundColor Green