fix(cpn): tie macOS bundle to its own SDL copies, and verify it (#7653)

Co-authored-by: Peter Feerick <5500713+pfeerick@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Peter Feerick
2026-08-16 13:46:47 +10:00
committed by GitHub
co-authored by Peter Feerick Claude Opus 5
parent 2025ac7274
commit c562f486d0
8 changed files with 357 additions and 55 deletions
+13 -1
View File
@@ -164,7 +164,19 @@ Open it and drag **EdgeTX Companion** into `/Applications`:
open native/edgetx-companion-*.dmg
```
The packaging step bundles Qt, SDL2, and SDL3 into the `.app` automatically.
The packaging step bundles Qt, SDL2, and SDL3 into the `.app` automatically, then verifies that
nothing in the bundle still points at a library outside it. If that check fails, the build stops
rather than producing a `.dmg` that only runs on your machine — most often because a dependency
was picked up from Homebrew without being copied in. Pass `-DCOMPANION_VERIFY_BUNDLE=OFF` to
package anyway.
!!! note
A locally built `.dmg` is not what CI ships. Homebrew's bottles are single-architecture and
target your macOS version, so your build is arm64-only and requires the macOS you built it
on. CI builds sdl2-compat and SDL3 from source as universal (`x86_64` + `arm64`) binaries
targeting macOS 11.0 — see `.github/actions/build_companion/setup-sdl.sh`. Both use the same
sdl2-compat + SDL3 stack, so the code path is identical; only the slices and minimum OS
differ.
# Troubleshooting