Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

51 рядки
1.6KB

  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. if (-not (Test-Path (Join-Path $gcc 'g++.exe'))) {
  7. throw "g++ not found at $gcc"
  8. }
  9. $env:PATH = "$gcc;" + $env:PATH
  10. $env:CGO_ENABLED = '1'
  11. $env:CC = 'gcc'
  12. $env:CXX = 'g++'
  13. # SDRplay
  14. $env:CGO_CFLAGS = '-IC:\PROGRA~1\SDRplay\API\inc'
  15. $env:CGO_LDFLAGS = '-LC:\PROGRA~1\SDRplay\API\x64 -lsdrplay_api'
  16. # CUDA (cuFFT)
  17. $cudaInc = 'C:\CUDA\include'
  18. $cudaBin = 'C:\CUDA\bin'
  19. if (-not (Test-Path $cudaInc)) {
  20. $cudaInc = 'C:\PROGRA~1\NVIDIA GPU Computing Toolkit\CUDA\v13.2\include'
  21. $cudaBin = 'C:\PROGRA~1\NVIDIA GPU Computing Toolkit\CUDA\v13.2\bin'
  22. }
  23. if (Test-Path $cudaInc) {
  24. $env:CGO_CFLAGS = "$env:CGO_CFLAGS -I$cudaInc"
  25. }
  26. if (Test-Path $cudaBin) {
  27. $env:PATH = "$cudaBin;" + $env:PATH
  28. }
  29. $cudaMingw = Join-Path $PSScriptRoot 'cuda-mingw'
  30. $gpuDemodBuild = Join-Path $PSScriptRoot 'internal\demod\gpudemod\build'
  31. if (Test-Path $cudaMingw) {
  32. $env:CGO_LDFLAGS = "$env:CGO_LDFLAGS -L$cudaMingw"
  33. }
  34. if (Test-Path $gpuDemodBuild) {
  35. $env:CGO_LDFLAGS = "$env:CGO_LDFLAGS -L$gpuDemodBuild"
  36. }
  37. $env:CGO_LDFLAGS = "$env:CGO_LDFLAGS -lgpudemod_kernels -lcufft64_12 -lcudart64_13 -lstdc++"
  38. Write-Host 'Building with SDRplay + cuFFT support (MinGW-host CUDA path)...' -ForegroundColor Cyan
  39. Write-Host 'Preparing GNU-compatible CUDA kernel artifacts...' -ForegroundColor Cyan
  40. powershell -ExecutionPolicy Bypass -File tools\build-gpudemod-kernel.ps1
  41. if ($LASTEXITCODE -ne 0) { throw 'kernel build failed' }
  42. go build -tags "sdrplay,cufft" ./cmd/sdrd
  43. if ($LASTEXITCODE -ne 0) { throw 'build failed' }
  44. Write-Host 'Done.' -ForegroundColor Green