set-openssl-static-env.ps1 1.4 KB

123456789101112131415161718192021222324252627282930
  1. # OpenSSL static link env for Windows MSVC (+crt-static /MT). Dot-source from client-tauri root.
  2. $ErrorActionPreference = "Stop"
  3. [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
  4. $opensslRoot = "C:\Program Files\OpenSSL-Win64"
  5. $staticOnlyDir = Join-Path $opensslRoot "lib\VC\x64\static-only"
  6. $mtDir = Join-Path $opensslRoot "lib\VC\x64\MT"
  7. $cryptoStatic = Join-Path $mtDir "libcrypto_static.lib"
  8. $sslStatic = Join-Path $mtDir "libssl_static.lib"
  9. if (-not (Test-Path $cryptoStatic) -or -not (Test-Path $sslStatic)) {
  10. Write-Host "ERROR: OpenSSL MT static libs not found." -ForegroundColor Red
  11. Write-Host " Expected: $cryptoStatic" -ForegroundColor Yellow
  12. Write-Host " Expected: $sslStatic" -ForegroundColor Yellow
  13. Write-Host " Install Win64 FULL from https://slproweb.com/products/Win32OpenSSL.html" -ForegroundColor Cyan
  14. exit 1
  15. }
  16. New-Item -ItemType Directory -Path $staticOnlyDir -Force | Out-Null
  17. Copy-Item $cryptoStatic (Join-Path $staticOnlyDir "libcrypto.lib") -Force
  18. Copy-Item $sslStatic (Join-Path $staticOnlyDir "libssl.lib") -Force
  19. $env:OPENSSL_DIR = $opensslRoot
  20. $env:OPENSSL_LIB_DIR = $staticOnlyDir
  21. $env:OPENSSL_INCLUDE_DIR = Join-Path $opensslRoot "include"
  22. # Required: without this, openssl-sys links DLLs; runtime needs libcrypto-3-x64.dll on target PC.
  23. $env:OPENSSL_STATIC = "1"
  24. $env:RUSTFLAGS = "-C target-feature=+crt-static"
  25. Write-Host "OpenSSL static env OK (OPENSSL_STATIC=1)." -ForegroundColor Green