#!/usr/bin/env sh # Regenerate the committed SPIR-V blobs under shaders/generated/. # # The build embeds the .spv files directly (see CMakeLists.txt), so no shader # compiler is needed to build OpenRA3. Run this only after editing a .vert/.frag. # # Needs one of: glslc (shaderc) or glslangValidator (glslang-tools). On a host # without either, use a throwaway container: # docker run --rm -v "$PWD/shaders:/s" ubuntu:26.04 bash -c \ # "apt-get update -qq && apt-get install -y -qq glslang-tools && \ # cd /s && sh ./compile.sh" set -eu DIR="$(cd "$(dirname "$0")" && pwd)" OUT="$DIR/generated" mkdir -p "$OUT" compile() { src="$1" dst="$2" if command -v glslc >/dev/null 2>&1; then glslc "$src" -o "$dst" else glslangValidator -V "$src" -o "$dst" fi } for name in scene terrain object; do compile "$DIR/$name.vert" "$OUT/$name.vert.spv" compile "$DIR/$name.frag" "$OUT/$name.frag.spv" done echo "wrote $OUT/{scene,terrain,object}.{vert,frag}.spv"