The Swatinem/rust-cache action was restored before brew installed the
native dependencies. When Homebrew updated glib (2.88.0 → newer) the
cached Rust build artifacts still referenced the old versioned Cellar
path (/opt/homebrew/Cellar/glib/2.88.0/lib), causing a linker failure:
ld: library 'gio-2.0' not found
Fix by:
1. Moving `brew install` before the rust-cache step so libs are current
before the cache is consulted.
2. Capturing `brew list --versions glib gtk4 libadwaita` into a
prefix-key so the cache key changes whenever those packages update,
forcing a clean Rust build with fresh pkg-config paths.
Linux and Windows cache behaviour is unchanged (MACOS_LIB_VER unset →
empty prefix-key → same default v0- prefix).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Include libadwaita and other dependencies in the app bundle on macOS
* Fix missing pipes
* Use recent bash for associative array support (declare -A)
* Use correct path for homebrew bash on Intel macOS
* Get homebrew path from the brew command
* Simplify copy-macos-dylib and convert to POSIX sh
Remove need for recent bash altogether
* Fix permissions nit
* Update macOS dylib copy script path in release workflow
* fix a few typos
* fix script invocation in pre-release.yml
---------
Co-authored-by: Apoorv Khandelwal <mail@apoorvkh.com>
Co-authored-by: Ferdinand Schober <ferdinandschober20@gmail.com>
* macos: initial support
- adapted conditional compilation
- moved lan-mouse socket to ~/Library/Caches/lan-mouse-socket.sock instead of XDG_RUNTIME_DIR
- support for mouse input emulation
TODO: Keycode translation, input capture