Replies: 3 comments
|
Hello, about to go on holiday so apologies, i'll be brief. Yes the plan is to support CMake properly soon. Several people are using iPlug2 with CMake. At the moment it is on a branch here https://github.com/iPlug2/iPlug2/tree/cmake and here https://github.com/iPlug2/iPlug2OOS/tree/cmake I would use the iPlug2OOS setup for multi-plugin projects these days. If you have expertise in CMake scripting, it would be great to get some help with it #39, Basically the reason it is not merged yet is because I'd like to get it to a state where we have parity with the custom made Xcode projects etc. This is not so trivial especially for iOS AUv3 builds, Web Audio Modules etc. |
|
As an FYI I copied over the IPlugInstrument example and created a project entirely using CMake to simplify it, on Windows, and it works well: buildpaths.cmake CMakeLists.txt But I would like to do a find_package cmake script for IPlug2 to simplify all the above, that would work with a VST3 find_package etc. to allow the user to decide the output target that way. The nice thing about the above (even though it's crude) is that it "just works" no matter your compiler etc. and it integrates nicely with VSCode. I hope it's useful to someone. But happy to work with others on the official efforts too. |
|
Cmake support is now merged 🥳 |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hi @olilarkin! Thanks so much for this amazing project.
I am looking to get started with iPlug2 after having used the VST SDK and worked with various GUI API's and I like what I see.
I am a low-level C/C++/assembly developer in the film industry for real-time 3D rendering by day, and an audio DSP developer and analog synthesizer builder by night, so I'm no newbie to programming, but getting started with iPlug2 I had a few questions I could not find through any of the docs or channels:
1.) Why do you hard-code v142 (vs2019) in all the vs project files (or have any included project files for any platform at all when they can be generated automatically via cmake)? Why not just use CMake to generate whatever native format the user wants? Is there a way to do this I'm not aware of? Are you open to collaborative development in this area? Is anyone else actively doing this I could collaborate with? I think a cmake version of your system would really help make everything more automatable. I am using vs2022 so it felt immediately strange to have to do string-replace just to start a project. This could be streamlined.
2.) You use a sub-module for iPlug2 in the iPlug2OOS repo along with scripts to download dependencies. It's more common in my field to locally build a project and use either environment variables or paths in CMake to define how to find them from this local build. Is this version of development possible? I say this because if I want to create a suite of plugins, having to re-run the same thing and download hundreds of megabytes of dependencies per plugin isn't very efficient.
3.) Is there a standard methodology when using iPlug2 to have one project containing multiple-plugins? If so, are there docs for this process? If not would you be open to collaborating on making this possible?
4.) Using cmake would also make it redundant to have multiple build scripts for each OS/API type etc. You could just have one that then gets configured automatically to "do the right thing". Again, are you open to collaborating on this?
I like what I see, but it seems to me to be too setup for single-plugin builds with all dependencies deposited directly into the project. Since I'd like to instead work on a large repository with multiple plugins all centrally handled by one script, I'd like to try and help other people modify iPlug2 to allow this if it doesn't already.
It also feels like iPlug2OOS could be rewritten to just be a custom CMake command you call from a fresh project rather than a project you have to clone to do the basics. Though I guess then you lose the included code from the example project....
Kind regards,
Luke
All reactions