Very strange build quirk concering Ableton/CMake/Xcode

Hi all.

I’ve just found some very strange behaviour I can’t seem to explain. I’ve tried 3 different build processes:

  1. Building with XCode generated from Projucer
    1. Everything works as expected, Debug or Release
  2. Building with CMake: “cmake --build CmakeBuilds --config Release” using configuration “cmake -B CmakeBuilds -G Xcode”
    1. Everything works as expected (Building using XCode or CMake command)
  3. Building with CMake: (Same build command) but configuration: “cmake -B CmakeBuilds”
    1. Ableton Can’t see the VST3 plugin, AU is recognised though.
    2. All other DAWs I’ve tried can recognise the VST3 built this way (Reaper, Renoise, FL, Bitwig, Studio One). Even pluginval strictness 10 passes all tests.

I am pretty perplexed. I’ve done this multiple times now and every time I use build process number 3, Ableton no longer recognises the plugin. Is the “-G” super important? why? what makes Ableton special, or the vst3 for that matter? I have many questions :laughing:.

not sure if this is important but I’m using JUCE version 8.0.10

Any illumination would be much appreciated

Did you set COPY_PLUGIN_AFTER_BUILD to TRUE?

Also, are you on mac? It could be that ableton is searching for plugins in /Library/Audio/Plug-Ins/VST3 and not in ~/Library/Audio/Plug-Ins/VST3

When you don’t pass -G, some default generator is used. I believe the default on Mac should be Unix makefiles, which should still work. You can also pass -G Ninja (or -G Xcode, like you did).

I’m not sure however why the Unix Makefiles generator would fail, but -G Ninja is usually a solid default for command line builds.

P.S. if you change the generator, make sure you also first delete the build folder (CmakeBuilds). Trying to generate using another generator into a folder that is already populated would very likely fail.

yeah i made sure to always rm -rf CmakeBuilds

COPY_PLUGIN_AFTER_BUILD is set to FALSE. I would put it in ~/Library/Audio/Plug-Ins/VST3 manually, which I’ve found Ableton recognises these plugins over the global folder and has worked fine in the past

There’s a chance this is related to signing. From memory, Live is a bit stricter about plugin signing than most other hosts.

You could check this by running codesign -dvvv /path/to/bundle.vst3 on the two bundles produced by Xcode and Make respectively, and looking for significant differences.