|
- #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
- }
|