fb6a1087d5
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.
28 lines
545 B
Meson
28 lines
545 B
Meson
project('screen_cast', 'cpp',
|
|
version : '0.1.0',
|
|
default_options : [
|
|
'cpp_std=c++20',
|
|
'warning_level=3',
|
|
'werror=false',
|
|
'buildtype=release',
|
|
])
|
|
|
|
# Public and private include directories are declared in `src/meson.build`.
|
|
subdir('src')
|
|
|
|
# Manual smoke tools are sender-side.
|
|
if get_option('sender')
|
|
subdir('tools')
|
|
endif
|
|
|
|
# Tests
|
|
enable_tests = get_option('tests')
|
|
if enable_tests
|
|
subdir('tests')
|
|
endif
|
|
|
|
# Summary for the user
|
|
summary({
|
|
'tests': enable_tests,
|
|
}, section: 'Build options')
|