-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Im wondering if cmake presets would be useful in this project? #137
Comments
My understanding is that most of the audio community has only a very superficial understanding of CMake, so I'm worried about adding more complexity or abstraction. But it could be a good call, if kept very very straightforward. Where are you running into problems in your CMakeLists.txt? Is it significantly more complex than pamplejuce's, and if so what's the nature of the complexity? |
Well, I'm building a product and the getting it building on Windows seems to be the difficult part. Absolutely everything has been pretty easy with Mac Intel/Silicon. I was just wondering if this might be of help to cut down the cmake files a bit. The bit where this has been pretty awful is the Long story short, is this probably wont help as this is more to do with pulling together different libs and trying to get a set of compiler setting applied correctly to each. I'm not sure there's a simple answer to that though...? |
Oooh, highway looks cool, haven't checked that out. Are you a fan of it? It has a CMakeLists.txt, does it not take care of setting the options it needs on the target it makes? |
Highway is pretty good, I did program my filter with intrinsic but with highway I ended up with them running quite a bit faster. I rolled my own juce IIR filters and they were about 2.5x faster too. The issue I was having was highway has a recommended compiler switch on windows of /Gv which breaks juce. There was also another conflict where there was a mismatch of the I ended up with something like this:
I couldn't figure out how to apply |
p.s highways overrides |
I think in your position I would consider making a JUCE module which contains your dsp and the highway dependency. Make sure the module header doesn’t list juce graphics as a dep. Isolating them in their own compile unit and target would allow you set different compile options on it, and the main project just consumes it (via add_subdirectory). Also would improve compile time on the main project… |
@sudara That's a really good idea, not sure why it didn't occur to me! The two filters I have with highway support will actually be re-used in the next project. I'm build the plugin with a base level of sse support back to the nehalem times which is SSE4. And then the highway code supports adds dynamic dispatch to: arm neon, sse3, sse4, avx, avx2, avx512. Its quite tricky to write code for filters that's length invariant but even so even fixed length vector operation benefit from the different SSE optimization's that highways outputs |
RE: https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html
Im wondering if using cmake presets would simplify anything? Im finding my root cmake files are getting a little wild. Just pondering how this could be tamed a bit...
The text was updated successfully, but these errors were encountered: