build-devtools.ps1 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. $ErrorActionPreference = "Stop"
  2. [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
  3. $OpenSSLDir = "C:\Program Files\OpenSSL-Win64"
  4. $OpenSSLLibDir = "C:\Program Files\OpenSSL-Win64\lib\VC\x64\MT"
  5. $OpenSSLIncludeDir = "C:\Program Files\OpenSSL-Win64\include"
  6. Write-Host "Checking OpenSSL at: $OpenSSLDir"
  7. if (Test-Path $OpenSSLDir) {
  8. Write-Host "[OK] OpenSSL found" -ForegroundColor Green
  9. } else {
  10. Write-Host "[ERROR] OpenSSL not found at: $OpenSSLDir" -ForegroundColor Red
  11. exit 1
  12. }
  13. $libcryptoPath = "$OpenSSLLibDir\libcrypto_static.lib"
  14. $libsslPath = "$OpenSSLLibDir\libssl_static.lib"
  15. if ((Test-Path $libcryptoPath) -and (Test-Path $libsslPath)) {
  16. Write-Host "[OK] OpenSSL static libraries found" -ForegroundColor Green
  17. } else {
  18. Write-Host "[ERROR] OpenSSL static libraries not found" -ForegroundColor Red
  19. exit 1
  20. }
  21. # Backup original lib files and replace with static versions
  22. $backupDir = "$OpenSSLLibDir\backup"
  23. New-Item -ItemType Directory -Force -Path $backupDir | Out-Null
  24. Copy-Item "$OpenSSLLibDir\libcrypto.lib" "$backupDir\" -Force -ErrorAction SilentlyContinue
  25. Copy-Item "$OpenSSLLibDir\libssl.lib" "$backupDir\" -Force -ErrorAction SilentlyContinue
  26. Copy-Item "$OpenSSLLibDir\libcrypto_static.lib" "$OpenSSLLibDir\libcrypto.lib" -Force
  27. Copy-Item "$OpenSSLLibDir\libssl_static.lib" "$OpenSSLLibDir\libssl.lib" -Force
  28. Write-Host "[OK] Replaced lib files with static versions" -ForegroundColor Green
  29. # Clean OpenSSL build cache for fresh build
  30. Write-Host "Cleaning OpenSSL build cache..." -ForegroundColor Yellow
  31. $targetDir = "d:\code\steam\client-tauri\src-tauri\target"
  32. Remove-Item "$targetDir\release\build\openssl-sys*" -Recurse -Force -ErrorAction SilentlyContinue
  33. Remove-Item "$targetDir\release\deps\openssl*" -Recurse -Force -ErrorAction SilentlyContinue
  34. $env:OPENSSL_DIR = $OpenSSLDir
  35. $env:OPENSSL_LIB_DIR = $OpenSSLLibDir
  36. $env:OPENSSL_INCLUDE_DIR = $OpenSSLIncludeDir
  37. $env:OPENSSL_STATIC = "1"
  38. $env:RUSTFLAGS = "-C target-feature=+crt-static"
  39. Write-Host ""
  40. Write-Host "========================================" -ForegroundColor Cyan
  41. Write-Host "OpenSSL static linking configured" -ForegroundColor Cyan
  42. Write-Host "OPENSSL_DIR: $env:OPENSSL_DIR"
  43. Write-Host "OPENSSL_LIB_DIR: $env:OPENSSL_LIB_DIR"
  44. Write-Host "OPENSSL_STATIC: $env:OPENSSL_STATIC"
  45. Write-Host "========================================" -ForegroundColor Cyan
  46. $env:DEFAULT_BACKEND_API_URL = "http://125.122.32.114:9000"
  47. $env:TAURI_DEVTOOLS = "1"
  48. Write-Host ""
  49. Write-Host "Building SteamSH (with DevTools)..." -ForegroundColor Cyan
  50. Set-Location "d:\code\steam\client-tauri"
  51. npm run tauri build
  52. # Restore original lib files
  53. if (Test-Path "$backupDir\libcrypto.lib") {
  54. Copy-Item "$backupDir\libcrypto.lib" "$OpenSSLLibDir\" -Force
  55. Copy-Item "$backupDir\libssl.lib" "$OpenSSLLibDir\" -Force
  56. }
  57. Remove-Item $backupDir -Recurse -Force -ErrorAction SilentlyContinue
  58. Write-Host ""
  59. Write-Host "========================================" -ForegroundColor Green
  60. Write-Host "Build completed!" -ForegroundColor Green
  61. Write-Host "DevTools exe: d:\code\steam\client-tauri\src-tauri\target\release\steamSH.exe" -ForegroundColor Green
  62. Write-Host "========================================" -ForegroundColor Green