Introjucer: JuceLibraryCode always added to include path

When creating an IDE specific project, the JuceLibraryCode directory is always added to the include path, and the file AppConfig.h is always auto-generated, even if all the Juce modules are unchecked. The file JuceHeader.h is always created as well.

This is a problem, because I have designed my modules to have additional compilation options (like VF_USE_FREETYPE, VF_USE_LUA, etc) which go into your existing AppConfig.h.

Unless Introjucer knows about every 3rd party module and their options, this system of rebuilding the entire AppConfig.h from scratch is unworkable. I recommend the following:

  • JuceLibraryCode added to the path only if a Juce module is checked.

  • AppConfig.h is created once if it doesn’t already exist, the first time an IntroJucer project is saved with at least one Juce module checked.

  • When the user changes Juce module options, IntroJucer should modify the existing AppConfig.h intelligently and change the corresponding macros, while preserving the rest of the file’s contents.

Note that AppConfig.h is a convenient place to put user defined compilation options as well (since its included everywhere).

I think modifying it intelligently would be too difficult, since the flags in there could be added or removed, and it’d be impossible to know which bits you want to keep.

But what I will do is to add a special section to it, within which it’s safe to add your own code, a bit like the way the jucer handles user-code in its generated files.