mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-09 22:08:56 +08:00
9c2e634325
The px4-sim / px4-sim-gazebo Homebrew meta-formulae can no longer pull their Gazebo dependency chain because Homebrew 4.5+ stopped auto-resolving cross-tap deps. PX4/homebrew-px4#104 already deprecated px4-dev into a no-op; #111 does the same for the sim formulae. This PR is the PX4-side counterpart: move the sim install into Tools/setup/macos.sh with an explicit package list and tap registration, mirroring the pattern already used for the toolchain block. Adds xquartz install on --sim-tools. Beyond install, three runtime and configure gaps kept make px4_sitl gz_x500 from working on a clean macOS: - gz-gui8 (pulled in by gz-sim8) links against Qt5, but Homebrew's qt@5 is keg-only so CMake cannot find it. Add a POSIX-scoped hint in platforms/posix/cmake/px4_impl_os.cmake that resolves brew --prefix qt@5 and appends it to CMAKE_PREFIX_PATH. No-ops on non-APPLE builds and respects a user-set Qt5_DIR. - On macOS, dyld does not search /opt/homebrew/lib by default. gobject-introspection typelibs reference libs by bare basename, causing gst-plugin-scanner to fail to load plugins and adding ~90s of timeout to Gazebo's cold start. Set DYLD_FALLBACK_LIBRARY_PATH to the Homebrew prefix lib dir in gz_env.sh so the bridge launch inherits it. Darwin-scoped, no effect on Linux or CI. - configure_file on gz_env.sh.in now uses @ONLY so shell ${VAR} references pass through untouched. Verified locally on macOS 26.4 / arm64 / Homebrew 5.1.7: configure clean, 1119/1119 targets compile and link, vehicle spawns in Gazebo Harmonic 8.11.0 with a single "Waiting for Gazebo world" wait (was ~18 before the dyld fix). Signed-off-by: Ramon Roche <mrpollo@gmail.com>