Template stripped to the overlay platform (examples, demo UI and Frame test package removed), renamed to FrameAssistant, and working rules for the project recorded in CLAUDE.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
51 lines
2.1 KiB
Bash
Executable File
51 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Builds the app inside a Debian container and stages an install in build/<preset>/stage,
|
|
# ready to copy to the Steam Frame.
|
|
#
|
|
# scripts/container-build.sh cross x86_64 host → aarch64, uses the target's
|
|
# system Qt 6.8.x (default way to deploy)
|
|
# scripts/container-build.sh native same for the host's own architecture
|
|
# (run on the Frame for a native arm64 build)
|
|
# scripts/container-build.sh cross-bundle / native-bundle
|
|
# self-contained: Qt bundled (fallback if the
|
|
# target's Qt doesn't fit)
|
|
# scripts/container-build.sh <mode> shell interactive shell in that container
|
|
#
|
|
# Uses podman if available, else docker (override with CONTAINER_ENGINE).
|
|
set -euo pipefail
|
|
|
|
root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
mode="${1:-}"
|
|
case "$mode" in
|
|
cross) dockerfile=cross-arm64.Dockerfile; preset=cross-arm64 ;;
|
|
native) dockerfile=native.Dockerfile; preset=native-systemqt ;;
|
|
cross-bundle) dockerfile=cross-arm64.Dockerfile; preset=cross-arm64-bundle ;;
|
|
native-bundle) dockerfile=native.Dockerfile; preset=native-bundle ;;
|
|
*) echo "usage: $0 cross|native|cross-bundle|native-bundle [shell]" >&2; exit 2 ;;
|
|
esac
|
|
image="frameassistant-build-${dockerfile%.Dockerfile}"
|
|
engine="${CONTAINER_ENGINE:-$(command -v podman || command -v docker)}"
|
|
|
|
"$engine" build -q -t "$image" -f "$root/docker/$dockerfile" "$root/docker" >/dev/null
|
|
|
|
run=("$engine" run --rm -v "$root:$root:z" -w "$root")
|
|
if [[ "$(basename "$engine")" == docker ]]; then
|
|
run+=(--user "$(id -u):$(id -g)")
|
|
else
|
|
run+=(--userns=keep-id)
|
|
fi
|
|
[[ -t 0 ]] && run+=(-it)
|
|
|
|
if [[ "${2:-}" == shell ]]; then
|
|
exec "${run[@]}" "$image" bash
|
|
fi
|
|
|
|
"${run[@]}" "$image" bash -c "
|
|
set -e
|
|
cmake --preset $preset
|
|
cmake --build --preset $preset
|
|
rm -rf build/$preset/stage
|
|
cmake --install build/$preset --prefix build/$preset/stage
|
|
"
|
|
echo "Staged: $root/build/$preset/stage"
|