Browse Source

Introjucer: cleaned up some binarydata code.

tags/2021-05-28
jules 13 years ago
parent
commit
0358e95dc9
6 changed files with 33 additions and 20 deletions
  1. +15
    -9
      extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h
  2. +3
    -7
      extras/Introjucer/Source/Project Saving/jucer_ResourceFile.cpp
  3. +1
    -1
      extras/Introjucer/Source/Project Saving/jucer_ResourceFile.h
  4. +11
    -0
      extras/Introjucer/Source/Project/jucer_Project.cpp
  5. +2
    -2
      extras/Introjucer/Source/Project/jucer_Project.h
  6. +1
    -1
      extras/audio plugin demo/Builds/MacOSX/Info.plist

+ 15
- 9
extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h View File

@@ -39,7 +39,8 @@ public:
: project (p), : project (p),
projectFile (file), projectFile (file),
generatedCodeFolder (project.getGeneratedCodeFolder()), generatedCodeFolder (project.getGeneratedCodeFolder()),
generatedFilesGroup (Project::Item::createGroup (project, getJuceCodeGroupName(), "__generatedcode__"))
generatedFilesGroup (Project::Item::createGroup (project, getJuceCodeGroupName(), "__generatedcode__")),
hasBinaryData (false)
{ {
generatedFilesGroup.setID (getGeneratedGroupID()); generatedFilesGroup.setID (getGeneratedGroupID());
} }
@@ -222,8 +223,9 @@ private:
StringArray errors; StringArray errors;
CriticalSection errorLock; CriticalSection errorLock;
File appConfigFile, binaryDataCpp;
File appConfigFile;
SortedSet<File> filesCreated; SortedSet<File> filesCreated;
bool hasBinaryData;
// Recursively clears out any files in a folder that we didn't create, but avoids // Recursively clears out any files in a folder that we didn't create, but avoids
// any folders containing hidden files that might be used by version-control systems. // any folders containing hidden files that might be used by version-control systems.
@@ -431,8 +433,8 @@ private:
for (int i = 0; i < modules.size(); ++i) for (int i = 0; i < modules.size(); ++i)
modules.getUnchecked(i)->writeIncludes (*this, out); modules.getUnchecked(i)->writeIncludes (*this, out);
if (binaryDataCpp.exists())
out << CodeHelpers::createIncludeStatement (binaryDataCpp.withFileExtension (".h"), appConfigFile) << newLine;
if (hasBinaryData)
out << CodeHelpers::createIncludeStatement (project.getBinaryDataHeaderFile(), appConfigFile) << newLine;
out << newLine out << newLine
<< "#if ! DONT_SET_USING_JUCE_NAMESPACE" << newLine << "#if ! DONT_SET_USING_JUCE_NAMESPACE" << newLine
@@ -460,8 +462,7 @@ private:
void writeBinaryDataFiles() void writeBinaryDataFiles()
{ {
binaryDataCpp = project.getBinaryDataCppFile();
const File binaryDataH (binaryDataCpp.withFileExtension (".h"));
const File binaryDataH (project.getBinaryDataHeaderFile());
ResourceFile resourceFile (project); ResourceFile resourceFile (project);
@@ -471,8 +472,10 @@ private:
Array<File> binaryDataFiles; Array<File> binaryDataFiles;
if (resourceFile.write (binaryDataCpp, binaryDataFiles))
if (resourceFile.write (binaryDataFiles))
{ {
hasBinaryData = true;
for (int i = 0; i < binaryDataFiles.size(); ++i) for (int i = 0; i < binaryDataFiles.size(); ++i)
{ {
const File& f = binaryDataFiles.getReference(i); const File& f = binaryDataFiles.getReference(i);
@@ -483,12 +486,15 @@ private:
} }
else else
{ {
addError ("Can't create binary resources file: " + binaryDataCpp.getFullPathName());
addError ("Can't create binary resources file: "
+ project.getBinaryDataCppFile(0).getFullPathName());
} }
} }
else else
{ {
binaryDataCpp.deleteFile();
for (int i = 20; --i >= 0;)
project.getBinaryDataCppFile (i).deleteFile();
binaryDataH.deleteFile(); binaryDataH.deleteFile();
} }
} }


+ 3
- 7
extras/Introjucer/Source/Project Saving/jucer_ResourceFile.cpp View File

@@ -251,9 +251,9 @@ bool ResourceFile::writeCpp (MemoryOutputStream& cpp, const File& headerFile, in
return true; return true;
} }
bool ResourceFile::write (const File& cppFile, Array<File>& filesCreated)
bool ResourceFile::write (Array<File>& filesCreated)
{ {
const File headerFile (cppFile.withFileExtension (".h"));
const File headerFile (project.getBinaryDataHeaderFile());
{ {
MemoryOutputStream mo; MemoryOutputStream mo;
@@ -268,11 +268,7 @@ bool ResourceFile::write (const File& cppFile, Array<File>& filesCreated)
for (;;) for (;;)
{ {
File cpp (cppFile);
if (fileIndex > 0)
cpp = cpp.getSiblingFile (cppFile.getFileNameWithoutExtension() + String (fileIndex + 1))
.withFileExtension (cppFile.getFileExtension());
File cpp (project.getBinaryDataCppFile (fileIndex));
MemoryOutputStream mo; MemoryOutputStream mo;
if (! (writeCpp (mo, headerFile, i) && FileHelpers::overwriteFileWithNewDataIfDifferent (cpp, mo))) if (! (writeCpp (mo, headerFile, i) && FileHelpers::overwriteFileWithNewDataIfDifferent (cpp, mo)))


+ 1
- 1
extras/Introjucer/Source/Project Saving/jucer_ResourceFile.h View File

@@ -52,7 +52,7 @@ public:
int getNumFiles() const { return files.size(); } int getNumFiles() const { return files.size(); }
int64 getTotalDataSize() const; int64 getTotalDataSize() const;
bool write (const File& cppFile, Array<File>& filesCreated);
bool write (Array<File>& filesCreated);
//============================================================================== //==============================================================================
private: private:


+ 11
- 0
extras/Introjucer/Source/Project/jucer_Project.cpp View File

@@ -217,6 +217,17 @@ bool Project::isAudioPluginModuleMissing() const
&& ! isModuleEnabled ("juce_audio_plugin_client"); && ! isModuleEnabled ("juce_audio_plugin_client");
} }
File Project::getBinaryDataCppFile (int index) const
{
const File cpp (getGeneratedCodeFolder().getChildFile ("BinaryData.cpp"));
if (index > 0)
return cpp.getSiblingFile (cpp.getFileNameWithoutExtension() + String (index + 1))
.withFileExtension (cpp.getFileExtension());
return cpp;
}
//============================================================================== //==============================================================================
static void registerRecentFile (const File& file) static void registerRecentFile (const File& file)
{ {


+ 2
- 2
extras/Introjucer/Source/Project/jucer_Project.h View File

@@ -104,8 +104,8 @@ public:
//============================================================================== //==============================================================================
File getGeneratedCodeFolder() const { return getFile().getSiblingFile ("JuceLibraryCode"); } File getGeneratedCodeFolder() const { return getFile().getSiblingFile ("JuceLibraryCode"); }
File getAppIncludeFile() const { return getGeneratedCodeFolder().getChildFile (getJuceSourceHFilename()); } File getAppIncludeFile() const { return getGeneratedCodeFolder().getChildFile (getJuceSourceHFilename()); }
File getBinaryDataCppFile() const { return getGeneratedCodeFolder().getChildFile ("BinaryData.cpp"); }
File getBinaryDataHeaderFile() const { return getBinaryDataCppFile().withFileExtension (".h"); }
File getBinaryDataCppFile (int index) const;
File getBinaryDataHeaderFile() const { return getBinaryDataCppFile (0).withFileExtension (".h"); }
//============================================================================== //==============================================================================
String getAmalgamatedHeaderFileName() const { return "juce_amalgamated.h"; } String getAmalgamatedHeaderFileName() const { return "juce_amalgamated.h"; }


+ 1
- 1
extras/audio plugin demo/Builds/MacOSX/Info.plist View File

@@ -27,7 +27,7 @@
<array> <array>
<dict> <dict>
<key>name</key> <key>name</key>
<string>Juce Demo Plugin</string>
<string>Raw Material Software: Juce Demo Plugin</string>
<key>description</key> <key>description</key>
<string>Juce Demo Plugin</string> <string>Juce Demo Plugin</string>
<key>factoryFunction</key> <key>factoryFunction</key>


Loading…
Cancel
Save