Introjucer is not adding the Modules folder


Just got a fresh code base today from Github.


Sometimes, when I create a new Windows based app, when i save and open in Visual Studio, Introjucer is not adding the modules folder with the project.  Not sure that I've seen any rhyme or reason to it, just sporadic.

Wondering if there is something I could be missing when creating the project. I follow these steps.

1) Open Introjucer
2) File-> New Project
3) Select my projects folder
4) Select GUI type
5) Create Main .cpp and a basic window
6) Give it a name
7) Select "create"
8) I get prompted where the modules folder lives, i chose c:\JUCE-master\modules
9) Click Save Project and Open in Visual Studio
10) Open visual studio and look in the solutions "Juce Library Code" folder and notice that the modules folder is not there.

One thing I would add is that, when this happens, the busy save indicator just flashes up real quick then dissapears. Which is different behavior than normal. Usually it's up there for at least 2 seconds while it saves.  It's as if while it's doing the "save" operation it's failing to copy the module folder over into the solution.



I've helped narrow it down some....

App that does NOT work

   <MODULEPATH id="juce_video" path="../../juce"/>
   <MODULEPATH id="juce_opengl" path="../../juce"/>
   <MODULEPATH id="juce_gui_extra" path="../../juce"/>
   <MODULEPATH id="juce_gui_basics" path="../../juce"/>
   <MODULEPATH id="juce_graphics" path="../../juce"/>
   <MODULEPATH id="juce_events" path="../../juce"/>

........ rest of the modules......

App that DOES work

   <MODULEPATH id="juce_video" path="../../../../../JUCE-master/modules"/>
   <MODULEPATH id="juce_opengl" path="../../../../../JUCE-master/modules"/>
   <MODULEPATH id="juce_gui_extra" path="../../../../../JUCE-master/modules"/>
   <MODULEPATH id="juce_gui_basics" path="../../../../../JUCE-master/modules"/>
   <MODULEPATH id="juce_graphics" path="../../../../../JUCE-master/modules"/>
   <MODULEPATH id="juce_events" path="../../../../../JUCE-master/modules"/>

~~....... rest of the modules......


Notice the pathings?  What's odd is that both of these two different applications are both Windows based apps and created from the exact same code base of the Introjucer.

When i open up the .jucer file and put these longer module paths into the .jucer file that does not work, resave the Introjuce project and open it in Visual Studio 2013, everything seems to work fine.



Hope this helps!

Couple more nuggets of information....


When I create a brand new project as I did above. If I look at the .jucer file, the paths look correct to the modules...
Once I delete the Visual Studio 2010 exporter and recreate a new Visual Studio 2013 exporter, that is when the paths are getting messed up.

Now IF I create a new project as above, create the Visual Studio 2013 exporter "BEFORE" deleting the Visual Studio 2010 exporter and open up the .jucer file, all the files paths are correct and it will open up in Visual Studio just fine.


Again, hope this helps.

To be honest, unless you're sharing a repo that needs to be completely self contaned I wouldn't bother copying the modules. For small test based projects I usually just point them all at my master JUCE directory. Its probably saving very quickly because you have the copying disabled for most, if not all of the modules.

In your IDE the modules sources don't appear in the "Juce Library Code" group, that simply contains the cpp amalgamation files that get built e.g. "juce_core.cpp". The browsable source files are under their own group named "Juce Modules". To get this to display, make sure you have the "Add source to project" option checked for every module in your Introjucer project.

Good info Dave... I haven't tried not coyping the modules. In fact, being so new to JUCE/Introjucer I didn't even realize that was an option.   However, I suppose my lack of knowledge did at least help identify a defect. :)

Once I delete the Visual Studio 2010 exporter and recreate a new Visual Studio 2013 exporter, that is when the paths are getting messed up.

Try creating the 2013 config and then delete the 2010 one. That way when it needs a juce folder to use for the new config, it'll copy the path from the existing one.

If there are no configs in the list when you create a new one, it won't know what path to use, so it'll probably just pick a (clearly incorrect!) default. I guess that maybe it should ask you for a path at that point, or should remember the last known juce path.

Thanks Jules, that's what I started doing.  Kinda leans towards the having global settings in Introjucer that point to the modules folder.

Yes.. but the thing is that although most people will have only one copy, you could have modules that are spread out in different locations, or different copies of them which are used by different projects. But yes, making it remember the last-used folder is probably better than nothing.