A tool for using different versions of JUCE on Mac

I started last week to think about an easy way to use different versions of JUCE (like 5.3.2 in which I started to work, 5.4.1, the latest, and the develop branch). The problem is that all versions of the Projucer refer to the same preference file, called “Projucer.settings” which is itself in “~/Library/Application Support/Projucer”. You need to modify this file to change the JUCE modules location.

Finally, I ended with a scheme where a small application launches the wanted projucer,
after modifying the “Projucer.settings” files. Very precisely, I use the following approach:
— create in /Applications a JUCES folder, where I put the various JUCE versions, which I call JUCE_5.3.2, JUCE_5.4.1 and JUCE_develop. There is a specific Projucer for each of these folders.
— create three clickable MAC applications, called Run-Projucer-5.3.2, Run-Projucer-5.4.1, and Run-Projucer-develop. These applications are just a wrapper around a simple bash script, that you can easily adapt to your needs. Double clicking one of these applications updates the preferences and launches the appropriate Jucer.

Download the MultiProjucer.zip (51.9 KB) file, which contains a « README » and a copy of the Run-Jucer application, follow the (very simple) instructions, and you’re done.

Hope this quite simple tool will help you…

1 Like

What settings conflict between the versions?

Not sure what you mean by this question. This approach lets you run the same projucer, or different projucers, with different settings: one settings file is associated with each application, and, for exemple, if you double click “Run-Projucer-5.4.1.app”, after running previously “Run-Projucer-5.3.2.app”, it saves the current version of “Projucer.settings” in “Projucer-5.3.2.settings”, copy “Projucer-5.4.1.settings” to “Projucer.settings”, and then launch the actual Projucer (the one you have associated with “Run-Projucer-5.4.1.app” – look at the script to see the actual operations).
If you use the same MyCode.jucer, where you have selected “Use global path” for the JUCE modules, then one Projucer will generate MyCode with the 5.3.2 library, the other with the 5.4.1.
Hope this answer your question.

Oh I see, it’s so you can use different global modules paths.
I’ve found the global modules to be very tricky to use because of this that I don’t use them at all these days.

I thought you were doing this because you have different projects with submodules of different JUCE version in and when you were using each PJ built from those you had conflicts with the global settings used for each.

1 Like