Use different JucePlugin_Manufacturer and COMPANY_NAME (CMake)

Hey!
I need to switch several existing plugin projects from Projucer to CMake, and I can’t find a way to set JucePlugin_Manufacturer to a string different from COMPANY_NAME (COMPANY_NAME is inserted automatically for PluginManufacturer).
This was possible in jucer projects. Having a different string there will affect the “display name” of the plugin manufacturer in DAWs.

Are there any solutions that don’t involve modifying the juce cmake files?

Thanks!

Set the COMPANY_NAME variable on the command line maybe? Something like:

$ COMPANY_NAME="MyGreatCompanyName1" cmake build/

You can set all of these when you call juce_add_plugin.

For example:

juce_add_plugin(MyPlugin
        COMPANY_NAME "Modalics"
        PLUGIN_MANUFACTURER_CODE ModX
        ...)

etc.

You can read the JUCE CMake API docs (under “docs” in the repo). for more complete info.

I’m not talking about PLUGIN_MANUFACTURER_CODE.
Within the JUCE cmake utility code, JucePlugin_Manufacturer will be set from COMPANY_NAME. There is no PLUGIN_MANUFACTURER to be set.

I’ve read the docs and a lot of the JUCE cmake internals.

Perhaps I misunderstood. You can set COMPANY_NAME. Do you need COMPANY_NAME and Juce_PluginManufacturer to be different values?

The problem is not setting COMPANY_NAME, the problem is that as of now it’s impossible to set JucePlugin_Manufacturer to something else.

See JUCEUtils.cmake:

JucePlugin_Manufacturer="$<TARGET_PROPERTY:${target},JUCE_COMPANY_NAME>"

Exactly that. It was possible in jucer projects, and ideally I’ll find a way to produce the exact same configuration the plugins had before moving to CMake… :confused:

Not tested, but have you tried (after calling juce_add_plugin)

target_compile_definitions(MyPlugin PUBLIC
            JucePlugin_Manufacturer="Something Else")

Yep, tried overriding it, no luck. I managed to force-replace it, but there is more going on under the hood - turns out just changing the preprocessor define isn’t enough.

To provide a little context why this matters:
Imagine a Company called “SuperCorp”, and SuperCorp has a line of audio plugins, which they market under the label/brand “SuperAudio”.

So “CoolPlugin”, which is made by the company “SuperCorp” should be presented as “CoolPlugin by SuperAudio”, but in any place the actual legal entity is required it has to mention “SuperCorp”.

For that reason, in the Projucer project, Plugin Manufacturer was set to “SuperAudio”, while Company was set to “SuperCorp”.

The closest way I was able to kind-of translate this scenario so far was using JUCE_COMPANY_COPYRIGHT=“SuperCorp” and JUCE_COMPANY_NAME=“SuperAudio”.

1 Like