1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-14 00:14:18 +00:00

Introjucer: Added option to avoid overwriting changes to local module files

This commit is contained in:
jules 2015-11-02 16:10:03 +00:00
parent e440a83ad7
commit 3aa3ebff91
5 changed files with 36 additions and 11 deletions

View file

@ -240,23 +240,34 @@ File LibraryModule::getModuleHeaderFile (const File& folder) const
//==============================================================================
void LibraryModule::writeIncludes (ProjectSaver& projectSaver, OutputStream& out)
{
const File localModuleFolder (projectSaver.project.getLocalModuleFolder (getID()));
Project& project = projectSaver.project;
EnabledModuleList& modules = project.getModules();
const String id (getID());
const File localModuleFolder (project.getLocalModuleFolder (id));
const File localHeader (getModuleHeaderFile (localModuleFolder));
const bool usingLocalCopyOfModules = modules.shouldCopyModuleFilesLocally (id).getValue();
localModuleFolder.createDirectory();
if (projectSaver.project.getModules().shouldCopyModuleFilesLocally (getID()).getValue())
if (usingLocalCopyOfModules
&& modules.shouldNotOverwriteModuleCodeOnSave (id).getValue()
&& localModuleFolder.getChildFile ("juce_module_info").exists())
{
projectSaver.copyFolder (moduleInfo.getFolder(), localModuleFolder);
projectSaver.filesCreated.add (localModuleFolder);
}
else
{
localModuleFolder.createDirectory();
createLocalHeaderWrapper (projectSaver, getModuleHeaderFile (moduleInfo.getFolder()), localHeader);
}
const File juceModuleFolder (moduleInfo.getFolder());
out << CodeHelpers::createIncludeStatement (localHeader, projectSaver.getGeneratedCodeFolder()
.getChildFile ("AppConfig.h")) << newLine;
localModuleFolder.createDirectory();
if (usingLocalCopyOfModules)
projectSaver.copyFolder (juceModuleFolder, localModuleFolder);
else
createLocalHeaderWrapper (projectSaver, getModuleHeaderFile (juceModuleFolder), localHeader);
out << CodeHelpers::createIncludeStatement (localHeader, projectSaver.getGeneratedCodeFolder()
.getChildFile ("AppConfig.h")) << newLine;
}
}
static void writeGuardedInclude (OutputStream& out, StringArray paths, StringArray guards)
@ -644,6 +655,12 @@ Value EnabledModuleList::shouldShowAllModuleFilesInProject (const String& module
.getPropertyAsValue (Ids::showAllCode, getUndoManager());
}
Value EnabledModuleList::shouldNotOverwriteModuleCodeOnSave (const String& moduleID)
{
return state.getChildWithProperty (Ids::ID, moduleID)
.getPropertyAsValue (Ids::overwriteOnSave, getUndoManager());
}
File EnabledModuleList::findLocalModuleInfoFile (const String& moduleID, bool useExportersForOtherOSes)
{
for (Project::ExporterIterator exporter (project); exporter.next();)