Files
UnrealPrototyping/Scripts/build-terrain.sh
T

30 lines
1.3 KiB
Bash

#!/usr/bin/env bash
# Builds the terrain generator (Docs/Terrain.md) to Tools/Terrain/bin/terrain.exe.
#
# Go is not in the repository and not in the engine's toolchain, so this is the one place that says so out
# loud when it is missing. Everything else about the generator is engine-free and needs nothing installed.
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT/Tools/Terrain"
if ! command -v go >/dev/null 2>&1; then
echo "build-terrain: no 'go' on PATH." >&2
echo " The generator needs a Go toolchain (1.22 or newer, for math/rand/v2). https://go.dev/dl/" >&2
echo " Take the windows/amd64 build: a 386 toolchain caps the process near 2 GB, and one float32" >&2
echo " field at the full 7141 grid is 204 MB, of which the detail passes hold several at once." >&2
exit 1
fi
echo "go $(go version | awk '{print $3}' | sed 's/^go//') ($(go env GOOS)/$(go env GOARCH))"
if [ "$(go env GOARCH)" = "386" ]; then
echo "build-terrain: WARNING - this is a 32-bit toolchain. The full-resolution run will not fit." >&2
fi
gofmt -l . | (! grep .) || { echo "build-terrain: gofmt would change the files above" >&2; exit 1; }
go vet ./...
go test ./...
mkdir -p bin
go build -o bin/terrain.exe ./cmd/terrain
echo "built $ROOT/Tools/Terrain/bin/terrain.exe"