Fix system rtmidi library usage#4255
Conversation
There was a problem hiding this comment.
Thanks Dawid — this is a correct, well-targeted fix. MidiControlManager.h includes RtMidi.h, and it's a PUBLIC header of aethercore (the executable and midi_settings_test compile against it). The bundled branch already accounts for this with target_include_directories(aethercore PUBLIC third_party/rtmidi). The system branch was the asymmetric one: linking PkgConfig::rtmidi as PRIVATE kept the imported target's INTERFACE_INCLUDE_DIRECTORIES from propagating, so any aethercore consumer including MidiControlManager.h → RtMidi.h would fail to resolve the header under -DUSE_SYSTEM_RTMIDI=ON. Switching to PUBLIC restores parity with the bundled path and propagates the include path (and link) transitively.
No blocking issues, no polish notes — the change is minimal and matches the existing convention in the adjacent block. Commit is signed, so nothing to flag there.
One thing worth confirming (not a blocker, and outside this diff): the CI matrix likely builds with the default USE_SYSTEM_RTMIDI=OFF, so this path may not be exercised automatically. If you built locally with -DUSE_SYSTEM_RTMIDI=ON before and after, mentioning that in the PR gives maintainers the demonstrated-fix evidence they like to see.
🤖 aethersdr-agent · cost: $4.1699 · model: claude-opus-4-8
|
I checked it locally and with PRIVATE it fails to build and when I changed it to PUBLIC, it worked fine, compiled and ran, so it's okay. |
|
Holding for next's week release. |
Hello,
In the newest version it hasn't been changed to inherit the rtmidi dependency when using the system library, so here's the fix 😄
Thanks,
Dawid Kulas
SP9SKA