Pluginval as dependency
Opening as a draft for feedback and iteration.
Addresses #137
This improves support for pluginval as a CMake sub-project in a JUCE project.
- Moves JUCE from submodule to CPM dependency on 8.0.4
- Only adds JUCE when top level
- Only sets deployment target when top level
- Only generate docs when top level
- Removes
PLUGINVAL_FETCH_JUCEoption (no longer needed, superseded by not being top level)
Open Questions:
- Do we need to enforce minimum JUCE version for this use case?
Remaining TODO:
- [ ] Get example plugins building in CI
Note to Dave and other maintainers:
With CPM, it's always a good idea to have the environment variable CPM_SOURCE_CACHE set — this will let you do offline builds vs. hitting the network on reconfigure. We can also add this optimization in CI too.
Add the following to .bashrc or .zshrc:
export CPM_SOURCE_CACHE=$HOME/.cache/CPM
The submodule is gone, so you can optionally clean up your .git/config folder, you can run:
rm -rf .git/modules/modules/juce
Am I supposed to be reviewing or merging this? I like the feature set but it seems to have not changed much in the last year? Is it stable enough to go in?
You might notice I switched to CPM for a few other dependancies on develop. Can this branch be pulled in line with that?
@drowaudio I've been using this branch for a year as a dependency of my synth but never got the example plugins running in CI. I'll need to get that going and resolve recent conflicts before it's mergable.
Ah ok. Poke me if/when you get to that.
I might switch to juce via CPM at some point soon anyway...