1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Made introjucer avoid any version-control files.

This commit is contained in:
Julian Storer 2011-08-19 14:45:14 +01:00
parent c0efd6c317
commit ae30b5c50a

View file

@ -44,13 +44,7 @@ public:
generatedFilesGroup.setID (getGeneratedGroupID());
if (generatedCodeFolder.exists())
{
Array<File> subFiles;
generatedCodeFolder.findChildFiles (subFiles, File::findFilesAndDirectories, false);
for (int i = subFiles.size(); --i >= 0;)
subFiles.getReference(i).deleteRecursively();
}
deleteNonHiddenFilesIn (generatedCodeFolder);
}
Project& getProject() noexcept { return project; }
@ -164,6 +158,47 @@ private:
File appConfigFile, binaryDataCpp;
// Recursively clears out a folder's contents, but leaves behind any folders
// containing hidden files used by version-control systems.
static bool deleteNonHiddenFilesIn (const File& parent)
{
bool folderIsNowEmpty = true;
DirectoryIterator i (parent, false, "*", File::findFilesAndDirectories);
Array<File> filesToDelete;
bool isFolder;
while (i.next (&isFolder, nullptr, nullptr, nullptr, nullptr, nullptr))
{
const File f (i.getFile());
if (shouldFileBeKept (f.getFileName()))
{
folderIsNowEmpty = false;
}
else if (isFolder)
{
if (deleteNonHiddenFilesIn (f))
filesToDelete.add (f);
else
folderIsNowEmpty = false;
}
else
{
filesToDelete.add (f);
}
}
for (int j = filesToDelete.size(); --j >= 0;)
filesToDelete.getReference(j).deleteRecursively();
return folderIsNowEmpty;
}
static bool shouldFileBeKept (const String& filename)
{
return filename == ".svn" || filename == ".cvs";
}
void writeMainProjectFile()
{
ScopedPointer <XmlElement> xml (project.getProjectRoot().createXml());