Juceaide failing

During CMake configure, running the juceaide fails with the following output:

CMake Error at /Users/benvining/cmake/FetchContent/juce/9dfd170a1a33963820cd75e906b21aba57d9b61b/extras/Build/CMake/JUCEUtils.cmake:459 (message):
  Running juceaide failed:

  libc++abi: terminating with uncaught exception of type
  juce::build_tools::SaveError

Call Stack (most recent call first):
  /Users/benvining/cmake/FetchContent/juce/9dfd170a1a33963820cd75e906b21aba57d9b61b/extras/Build/CMake/JUCEUtils.cmake:590 (_juce_execute_juceaide)
  /Users/benvining/cmake/FetchContent/juce/9dfd170a1a33963820cd75e906b21aba57d9b61b/extras/Build/CMake/JUCEUtils.cmake:1088 (_juce_configure_bundle)
  /Users/benvining/cmake/FetchContent/juce/9dfd170a1a33963820cd75e906b21aba57d9b61b/extras/Build/CMake/JUCEUtils.cmake:1229 (_juce_link_plugin_wrapper)
  /Users/benvining/cmake/FetchContent/juce/9dfd170a1a33963820cd75e906b21aba57d9b61b/extras/Build/CMake/JUCEUtils.cmake:1770 (_juce_configure_plugin_targets)
  cmake/other_formats.cmake:28 (juce_add_plugin)
  plugins/fx/2getheraudio-re4ormfx/CMakeLists.txt:16 (qubiq_add_plugin_other_formats)

Any ideas?

Are you using JUCE 7.0.7? On develop, if juceaide fails during configure, the failing command should be printed alongside this error message. Once you have the failing command, you can attach a debugger and find out what’s going wrong.

That said, there’s only a couple of places where SaveErrors are thrown in juceaide:

  • generating an AU plist, if the AU identifiers are invalid
  • overwriting/replacing a file (may fail due to permissions)
1 Like

I was able to get it to print the command, and it is indeed the AU plist generation that fails:

command:
  /Users/benvining/Documents/InMusic/qubiq-plugins/build/_deps/juce-build/tools/extras/Build/juceaide/juceaide_artefacts/Debug/juceaide
  plist;AU;/Users/benvining/Documents/InMusic/qubiq-plugins/build/plugins/fx/2getheraudio-re4ormfx/re4ormfxJuce_artefacts/JuceLibraryCode/Info.txt;/Users/benvining/Documents/InMusic/qubiq-plugins/build/plugins/fx/2getheraudio-re4ormfx/re4ormfxJuce_artefacts/JuceLibraryCode/re4ormfxJuce_AU/Info.plist

Here is the info.txt that was generated, are there any obvious things wrong here?

EXECUTABLE_NAMEfooVERSION1.2.0BUILD_VERSION1.2.0PLIST_TO_MERGEBUNDLE_IDcom.inmusicbrands.fooXCODE_EXTRA_PLIST_ENTRIESMICROPHONE_PERMISSION_ENABLEDMICROPHONE_PERMISSION_TEXTCAMERA_PERMISSION_ENABLEDCAMERA_PERMISSION_TEXTBLUETOOTH_PERMISSION_ENABLEDBLUETOOTH_PERMISSION_TEXTSEND_APPLE_EVENTS_PERMISSION_ENABLEDSEND_APPLE_EVENTS_PERMISSION_TEXTSHOULD_ADD_STORYBOARDTRUELAUNCH_STORYBOARD_FILE/Users/benvining/Documents/InMusic/qubiq-plugins/build/_deps/juce-src/extras/Build/CMake/LaunchScreen.storyboardICON_FILEPROJECT_NAMEfooCOMPANY_COPYRIGHTCOMPANY_NAMEInMusicDOCUMENT_EXTENSIONSFILE_SHARING_ENABLEDDOCUMENT_BROWSER_ENABLEDSTATUS_BAR_HIDDENREQUIRES_FULL_SCREENBACKGROUND_AUDIO_ENABLEDBACKGROUND_BLE_ENABLEDPUSH_NOTIFICATIONS_ENABLEDNETWORK_MULTICAST_ENABLEDPLUGIN_MANUFACTURER_CODE2gthPLUGIN_CODEr4fxIPHONE_SCREEN_ORIENTATIONSUIInterfaceOrientationPortrait;UIInterfaceOrientationLandscapeLeft;UIInterfaceOrientationLandscapeRightIPAD_SCREEN_ORIENTATIONSUIInterfaceOrientationPortrait;UIInterfaceOrientationLandscapeLeft;UIInterfaceOrientationLandscapeRightPLUGIN_NAMEfooPLUGIN_MANUFACTURERInMusicPLUGIN_DESCRIPTIONfooPLUGIN_AU_EXPORT_PREFIXfooAUPLUGIN_AU_MAIN_TYPE'aufx'IS_AU_SANDBOX_SAFEFALSEIS_PLUGIN_SYNTHFALSEIS_PLUGIN_ARA_EFFECTFALSESUPPRESS_AU_PLIST_RESOURCE_USAGEFALSEHARDENED_RUNTIME_ENABLEDONAPP_SANDBOX_ENABLEDFALSEAPP_SANDBOX_INHERITFALSEHARDENED_RUNTIME_OPTIONSAPP_SANDBOX_OPTIONSAPP_SANDBOX_FILE_ACCESS_HOME_ROAPP_SANDBOX_FILE_ACCESS_HOME_RWAPP_SANDBOX_FILE_ACCESS_ABS_ROAPP_SANDBOX_FILE_ACCESS_ABS_RWAPP_GROUPS_ENABLEDAPP_GROUP_IDSIS_PLUGINTRUEICLOUD_PERMISSIONS_ENABLEDIS_AU_PLUGIN_HOSTFALSEIS_IOS0

Nothing jumps out - are you able to run juceaide under a debugger set to break when any exception is thrown? That’ll be the quickest way to find out exactly why/where it’s failing.

It turned out the issue was that the plugin manufacturer code had only lowercase letters. Capitalizing one of the letters fixed it.

It would be great if that error message could be explicitly printed by the juceaide, or if JUCE’s cmake could check for that error case before launching the juceaide.

Thanks for letting us know. I’ve updated Juceaide to print a detailed diagnostic message if a SaveError exception is thrown:

2 Likes