From a9fb2144242301e9449f67a54efef3dbc7230d41 Mon Sep 17 00:00:00 2001 From: Kevin Date: Sat, 24 Oct 2026 20:44:42 +0200 Subject: [PATCH] fix: Make Frame Studio build script check local build folder for Frame Home Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/building.md | 6 ++++-- scripts/build-studio.sh | 9 ++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/building.md b/docs/building.md index 425e1e8..6f84d58 100644 --- a/docs/building.md +++ b/docs/building.md @@ -24,8 +24,8 @@ CMake and Ninja. studio\build_windows.bat x64 ``` - Studio packages the CI-built headset payload. Download the `FrameHome-payload` artifact from an Actions run and set - `FRAME_HOME_PAYLOAD_DIR` to its extracted directory before running the build script. + Download the `FrameHome-payload` artifact from an Actions run, extract it, and set `FRAME_HOME_PAYLOAD_DIR` to + its payload directory before running the batch file, or [build it manually](#frame-home-payload). Use `x86` for 32-bit Windows or `arm64` for Windows on ARM instead of `x64`. 3. The program is `%LOCALAPPDATA%\FrameStudio\build-x64\Frame Studio.exe` (the folder ends in your architecture). @@ -43,6 +43,8 @@ scripts/build-studio.sh TARGET... [--build-dir DIR] ``` Each target is built and packed into `dist/`. `scripts/build-studio.sh --help` lists them. +The script uses `build/frame-home/payload` when present. Set `FRAME_HOME_PAYLOAD_DIR` to use a payload from another +location. | Target | Build on | Output | |---|---|---| diff --git a/scripts/build-studio.sh b/scripts/build-studio.sh index 251f491..e4c8308 100755 --- a/scripts/build-studio.sh +++ b/scripts/build-studio.sh @@ -16,7 +16,7 @@ set -eu ROOT=$(cd "$(dirname "$0")/.." && pwd) DIST="$ROOT/dist" BUILD="$ROOT/build" -FRAME_PAYLOAD_DIR=${FRAME_HOME_PAYLOAD_DIR:-"$ROOT/frame/payload"} +FRAME_PAYLOAD_DIR=${FRAME_HOME_PAYLOAD_DIR:-} CMAKE=${CMAKE:-cmake} TARGETS="" while [ $# -gt 0 ]; do @@ -27,8 +27,15 @@ while [ $# -gt 0 ]; do esac done [ -n "$TARGETS" ] || { sed -n '2,19p' "$0"; exit 1; } +if [ -z "$FRAME_PAYLOAD_DIR" ]; then + for candidate in "$BUILD/frame-home/payload" "$ROOT/build/frame-home/payload"; do + if [ -d "$candidate" ]; then FRAME_PAYLOAD_DIR=$candidate; break; fi + done + [ -n "$FRAME_PAYLOAD_DIR" ] || FRAME_PAYLOAD_DIR="$ROOT/frame/payload" +fi mkdir -p "$DIST" "$BUILD" say() { echo "build-studio: $*"; } +say "using Frame Home payload: $FRAME_PAYLOAD_DIR" if [ "$TARGETS" = " all" ]; then case "$(uname -s)" in