| @@ -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(); | ||||
| } | } | ||||
| } | } | ||||
| @@ -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))) | ||||
| @@ -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: | ||||
| @@ -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) | ||||
| { | { | ||||
| @@ -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"; } | ||||
| @@ -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> | ||||