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:
parent
e440a83ad7
commit
3aa3ebff91
5 changed files with 36 additions and 11 deletions
|
|
@ -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();)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue