AAX silently disabled on Linux

AAX is not supported on Linux (AVID doesn’t seem to support it and the unction juce_set_aax_sdk_path() is only valid on macOS and Windows and returns without doing anything on Linux). But if AAX is specified in the FORMATS list of a plugin, on Linux it generates the error Use juce_set_aax_sdk_path to set up the AAX sdk before adding AAX targets. Do you think AAX could be silently disabled on Linux like it was done for iOS (see this thread)? This way, we can avoid specifying the list of formats based on the platform.

CMake is already pretty customizable.

On our CI (and others uses similar approach):

  1. add your most common/mandatory formats
set(OUR_PRODUCT_PLUGIN_FORMATS AU VST3 Standalone)
  1. Append on relevat archs.
# Windows and macOS want AAX format too. The juce_set_aax_sdk_path() command
# must be called before the juce_add_plugin() below.

if(APPLE OR MSVC)
    juce_set_aax_sdk_path(**AAX SDK PATH GOES HERE***)
    list(APPEND OUR_PRODUCT_PLUGIN_FORMATS AAX)
endif()
  1. uses the variable you’ve made.
juce_add_plugin(OurProduct
    ...
    FORMATS ${OUR_PRODUCT_PLUGIN_FORMATS}
3 Likes

The idea is to avoid doing that like on iOS.

Just to defend a bit more my point of view :wink: It seems that the other formats are silently disabled when they are not available for a specific platform or OS, for instance, the AU format is silently disabled on Windows & Linux (and even the AAX format is silently disabled on iOS), so it would more consistent to preserve the same approach for all the formats and OSes.

And of course, we can use a variable on our side in CMake to define the supported formats depending on the OS but if you have several plugins that don’t support the same formats (because some of them use extensions that constrain the supported format for instance), you have to define a condition based on the plugin and the OS for the format and the CMakeList.txt loses of clarity.

1 Like

For the record, the issue has been fixed by e7581fa, thanks a lot! :pray:

3 Likes