Frame Home release builds keep libdeflate and load only what SteamOS has; Studio builds without a payload outside CI

- CI installs libdeflate-dev and CMake prefers its static library: APK homes
  unpack as fast as with the headset-built programs, with no new dependency.
- build-frame-home.sh --ci fails when a headset program needs a library
  beyond libc/libm/libdl/libpthread/libstdc++/libgcc_s.
- Studio's CMake requires a complete payload only in CI (or with
  FRAME_HOME_REQUIRE_PAYLOAD); a developer build without one warns, leaves out
  frame/, and Install on Steam Frame says the headset files are missing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ToastconcernandClaude Opus 5.5 committed 2026-10-24 16:40:40 -05:00
1 parent 8956441618
commit 91d9be5194
4 files changed
+30 -6

No files matched your search

+9
View File
@@ -66,6 +66,15 @@ for binary in "$PAYLOAD/bin/"* "$PAYLOAD/layer/libframe_home_layer.so"; do
echo "$binary requires $highest, newer than the glibc 2.39 baseline" >&2
exit 1
fi
# Release builds load only what every SteamOS has (OpenVR and Vulkan are found at run time, libdeflate is linked in).
if [ "$MODE" = ci ]; then
extra=$(readelf -d "$binary" | sed -n 's/.*(NEEDED).*\[\(.*\)\]/\1/p' |
grep -vxE 'libc\.so\.6|libm\.so\.6|libdl\.so\.2|libpthread\.so\.0|libstdc\+\+\.so\.6|libgcc_s\.so\.1|ld-linux-aarch64\.so\.1' || true)
if [ -n "$extra" ]; then
echo "$binary needs libraries a headset may not have: $(echo $extra)" >&2
exit 1
fi
fi
done
{