WaveDigitalFilters icon indicating copy to clipboard operation
WaveDigitalFilters copied to clipboard

Removed submodules and use cmake FetchContent instead

Open ffAudio opened this issue 1 year ago • 1 comments

Adding the WaveFiltersDigital module to a project brings in the submodules juce, chowdsp_utils and chowdsp_wdf. This creates issues for people who already have juce as a dependency, not to mention if you want to use a different juce version.

This PR removes the submodules and brings in the dependencies via cmake.

If a user has juce already added, cmake will automatically skip the additional FetchContent call.

In addition the dependencies are put in a folder inside the build folder to keep it from cluttering the project.

Let me know if you have questions.

ffAudio avatar Mar 04 '24 16:03 ffAudio

Hello! Thanks for the PR, it looks good overall.

I think I would prefer to use CPM over FetchContent, but I'm not opposed to FetchContent. I think I would also prefer to use explicit commit hashes for fetching the dependent repos just to avoid breaking this repo due to breaking changes in the dependencies. Although for both of these points, I would be curious to hear if there are reasons to do things the other way.

That said, I also wouldn't recommend using this repo as a dependency for other projects, as it's primarily designed to be an "example" repo. chowdsp_wdf is designed to be a library that can be easily used in other projects (either as a CMake target or as a single-header include), and is only dependent on C++14.

jatinchowdhury18 avatar Mar 04 '24 18:03 jatinchowdhury18