# build_all.ps1 # 一键打包 main 和 updater,三平台: Windows 64, Linux amd64, Linux arm64 # ------------------------- # 项目根目录 $RootDir = Split-Path -Parent $MyInvocation.MyCommand.Definition Set-Location $RootDir # ------------------------- # 定义要打包的平台 $targets = @( @{ OS="windows"; ARCH="amd64"; Dir="build/release/win"; MainOut="main.exe"; }, @{ OS="linux"; ARCH="amd64"; Dir="build/release/linux_amd64"; MainOut="main"; }, @{ OS="linux"; ARCH="arm64"; Dir="build/release/linux_arm64"; MainOut="main"; } ) # ------------------------- # 循环打包 foreach ($t in $targets) { Write-Host "=== Build $($t.OS)-$($t.ARCH) Version ===" # 设置环境变量 $env:GOOS = $t.OS $env:GOARCH = $t.ARCH $env:CGO_ENABLED = "0" # 创建输出目录 if (!(Test-Path $t.Dir)) { New-Item -ItemType Directory -Path $t.Dir | Out-Null } # 编译 main Write-Host "Building main..." go build -ldflags="-s -w" -o "$($t.Dir)/$($t.MainOut)" ./app Write-Host "$($t.OS)-$($t.ARCH) Build complete, Output dir: $($t.Dir)" Write-Host "" } Write-Host "All builds finished."