Skip to content

Conversation

@qbe
Copy link
Contributor

@qbe qbe commented Dec 29, 2025

rebase of #4667 , a (proposed) fix for #4276

justification for this PR is discussed in the issue, dynamically loading modules allows a waybar build with cava and gps capabilities to be packaged in a way that allows for libgps, libcava and epoxy to be optional dependencies.

Another goal of this PR was to include as few modifications to module code as necessary. For this reason I decided to split off the cava and gps modules into shared libraries, and to load them in factory.cpp using dlopen() / dlsym() .

The first 4 commits deal with the fact that reap_mtx / reap were previously an "extern" reference deep within include/util/command.hpp , which is included in every module and thus prevents the split up. Passing reap_mtx / reap to the module constructors rectifies this, but necessarily touches lots of constructors. I recommend looking at a word-diff of these commits.

@qbe
Copy link
Contributor Author

qbe commented Dec 29, 2025

As to why this rebase was necessary, turns out using the wrong clang-format version caused a lot of noise, while at the same time some changes regarding cava were merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant