build: add receiver-only configuration and a Pi install script

The receiver does not need the sender's PipeWire/xdg-desktop-portal
capture stack, which small ARM boards neither have nor want. Add a
-Dsender=false meson option that skips the capture backend and the
sender pipeline (SC_HAS_SENDER guards in main.cpp/pipelines.cpp);
receiver-only builds refuse --send with a clear message while
--receive and --discover work unchanged.

scripts/install-receiver.sh targets such boards (e.g. Raspberry Pi
Zero 2 W): installs build and runtime dependencies via apt, checks the
compiler for C++20 <format> support before the long build (GCC 13+,
i.e. Raspberry Pi OS Trixie), builds SDL3 from source when the distro
does not package it, compiles a receiver-only binary, runs the test
suite, installs to /usr/local/bin, and enables avahi-daemon.

Also refresh the stale README (phases, dependencies, current
roadmap, Pi receiver section).

Validated in both configurations: meson test 5/5 each; the
receiver-only build has no PipeWire/portal references, refuses --send
cleanly, and --discover works headlessly.
This commit is contained in:
2026-09-07 12:24:57 +02:00
parent 7be8d59d07
commit fb6a1087d5
9 changed files with 221 additions and 25 deletions
+4 -2
View File
@@ -10,8 +10,10 @@ project('screen_cast', 'cpp',
# Public and private include directories are declared in `src/meson.build`.
subdir('src')
# Manual smoke tools
subdir('tools')
# Manual smoke tools are sender-side.
if get_option('sender')
subdir('tools')
endif
# Tests
enable_tests = get_option('tests')