Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

47 linhas
1.4KB

  1. $ErrorActionPreference = 'Stop'
  2. $gcc = 'C:\msys64\mingw64\bin'
  3. if (-not (Test-Path (Join-Path $gcc 'gcc.exe'))) {
  4. throw "gcc not found at $gcc"
  5. }
  6. $env:PATH = "$gcc;" + $env:PATH
  7. $env:CGO_ENABLED = '1'
  8. # SDRplay
  9. $env:CGO_CFLAGS = '-IC:\PROGRA~1\SDRplay\API\inc'
  10. $env:CGO_LDFLAGS = '-LC:\PROGRA~1\SDRplay\API\x64 -lsdrplay_api'
  11. # CUDA (cuFFT)
  12. # Prefer C:\CUDA if present (no spaces)
  13. $cudaInc = 'C:\CUDA\include'
  14. $cudaLib = 'C:\CUDA\lib\x64'
  15. $cudaBin = 'C:\CUDA\bin'
  16. if (-not (Test-Path $cudaInc)) {
  17. $cudaInc = 'C:\PROGRA~1\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include'
  18. $cudaLib = 'C:\PROGRA~1\NVIDIA GPU Computing Toolkit\CUDA\v13.2\lib\x64'
  19. $cudaBin = 'C:\PROGRA~1\NVIDIA GPU Computing Toolkit\CUDA\v13.2\bin'
  20. }
  21. if (Test-Path $cudaInc) {
  22. $env:CGO_CFLAGS = "$env:CGO_CFLAGS -I$cudaInc"
  23. }
  24. if (Test-Path $cudaBin) {
  25. $env:PATH = "$cudaBin;" + $env:PATH
  26. }
  27. $cudaMingw = Join-Path $PSScriptRoot 'cuda-mingw'
  28. if (Test-Path $cudaMingw) {
  29. # Use MinGW import libs to avoid MSVC .lib linking issues
  30. $env:CGO_LDFLAGS = "$env:CGO_LDFLAGS -L$cudaMingw"
  31. } elseif (Test-Path $cudaLib) {
  32. # Fallback to CUDA lib path (requires compatible toolchain)
  33. $env:CGO_LDFLAGS = "$env:CGO_LDFLAGS -L$cudaLib -lcufft -lcudart"
  34. }
  35. Write-Host "Building with SDRplay + cuFFT support..." -ForegroundColor Cyan
  36. go build -tags "sdrplay,cufft" ./cmd/sdrd
  37. if ($LASTEXITCODE -ne 0) { throw "build failed" }
  38. Write-Host "Done." -ForegroundColor Green