Project directory structure / Juce versions: Best practices?


What is the ‘right’ way to structure your Juce application project directories? I normally like to keep my software in a different tree and use an environment variable like JUCE_HOME to point to the version du jour. I think this is workable for the most part, but it seems like some types of customization are awkward to do outside of the Juce distribution. For instance if you want to create a new look and feel using the Shiney look stuff as a point of departure there are a lot of #include “…/whatever”. Is this an issue I can solve by a reasonable setting of the INCLUDE environment variable? Or should I plan on doing projects and audio plugins outside the Juce tree, and plan on making certain types of more fundamental modifications (mostly new derived classes) inside the Juce tree?


I wouldn’t suggest doing anything inside the juce tree, unless you’re deliberately modifying a file for some hacky reason. I keep all my projects in a folder next to the juce tree, so sort of like:


And they only ever have to include juce.h