#Requires -Version 5.1 <# .SYNOPSIS Build roadamp.exe .PARAMETER OutDir Output directory. Defaults to the project root (where this script lives). .PARAMETER Version Version string embedded via -ldflags. Defaults to the current git tag/commit. .EXAMPLE .\build.ps1 .\build.ps1 -OutDir C:\Deploy\roadamp #> param( [string]$OutDir = $PSScriptRoot, [string]$Version = "" ) Set-StrictMode -Version Latest $ErrorActionPreference = 'Stop' Push-Location $PSScriptRoot try { # Resolve version from git if not supplied if (-not $Version) { $tag = git describe --tags --always --dirty 2>$null $Version = if ($tag) { $tag } else { "dev" } } $out = Join-Path $OutDir "roadamp.exe" Write-Host "Building roadamp $Version → $out" -ForegroundColor Cyan $env:GOOS = "windows" $env:GOARCH = "amd64" $env:CGO_ENABLED = "0" go build ` -trimpath ` -ldflags "-s -w -X main.Version=$Version" ` -o $out ` ./cmd/roadamp $size = [math]::Round((Get-Item $out).Length / 1MB, 2) Write-Host "Done $out (${size} MB)" -ForegroundColor Green } finally { Pop-Location }