| @@ -219,15 +219,15 @@ ProjectExporter::ProjectExporter (Project& p, const ValueTree& state) | |||||
| projectType (p.getProjectType()), | projectType (p.getProjectType()), | ||||
| projectName (p.getProjectNameString()), | projectName (p.getProjectNameString()), | ||||
| projectFolder (p.getProjectFolder()), | projectFolder (p.getProjectFolder()), | ||||
| targetLocationValue (settings, Ids::targetFolder, project.getUndoManagerFor (settings)), | |||||
| extraCompilerFlagsValue (settings, Ids::extraCompilerFlags, project.getUndoManagerFor (settings)), | |||||
| extraLinkerFlagsValue (settings, Ids::extraLinkerFlags, project.getUndoManagerFor (settings)), | |||||
| externalLibrariesValue (settings, Ids::externalLibraries, project.getUndoManagerFor (settings)), | |||||
| userNotesValue (settings, Ids::userNotes, project.getUndoManagerFor (settings)), | |||||
| gnuExtensionsValue (settings, Ids::enableGNUExtensions, project.getUndoManagerFor (settings)), | |||||
| bigIconValue (settings, Ids::bigIcon, project.getUndoManagerFor (settings)), | |||||
| smallIconValue (settings, Ids::smallIcon, project.getUndoManagerFor (settings)), | |||||
| extraPPDefsValue (settings, Ids::extraDefs, project.getUndoManagerFor (settings)) | |||||
| targetLocationValue (settings, Ids::targetFolder, getUndoManager()), | |||||
| extraCompilerFlagsValue (settings, Ids::extraCompilerFlags, getUndoManager()), | |||||
| extraLinkerFlagsValue (settings, Ids::extraLinkerFlags, getUndoManager()), | |||||
| externalLibrariesValue (settings, Ids::externalLibraries, getUndoManager()), | |||||
| userNotesValue (settings, Ids::userNotes, getUndoManager()), | |||||
| gnuExtensionsValue (settings, Ids::enableGNUExtensions, getUndoManager()), | |||||
| bigIconValue (settings, Ids::bigIcon, getUndoManager()), | |||||
| smallIconValue (settings, Ids::smallIcon, getUndoManager()), | |||||
| extraPPDefsValue (settings, Ids::extraDefs, getUndoManager()) | |||||
| { | { | ||||
| } | } | ||||
| @@ -376,7 +376,7 @@ void ProjectExporter::addCommonAudioPluginSettings() | |||||
| void ProjectExporter::addVST3FolderToPath() | void ProjectExporter::addVST3FolderToPath() | ||||
| { | { | ||||
| const String vst3Folder (getVST3PathValue().toString()); | |||||
| auto vst3Folder = getVST3PathValue().toString(); | |||||
| if (vst3Folder.isNotEmpty()) | if (vst3Folder.isNotEmpty()) | ||||
| addToExtraSearchPaths (RelativePath (vst3Folder, RelativePath::projectFolder), 0); | addToExtraSearchPaths (RelativePath (vst3Folder, RelativePath::projectFolder), 0); | ||||
| @@ -384,11 +384,11 @@ void ProjectExporter::addVST3FolderToPath() | |||||
| void ProjectExporter::addAAXFoldersToPath() | void ProjectExporter::addAAXFoldersToPath() | ||||
| { | { | ||||
| const String aaxFolder = getAAXPathValue().toString(); | |||||
| auto aaxFolder = getAAXPathValue().toString(); | |||||
| if (aaxFolder.isNotEmpty()) | if (aaxFolder.isNotEmpty()) | ||||
| { | { | ||||
| const RelativePath aaxFolderPath (getAAXPathValue().toString(), RelativePath::projectFolder); | |||||
| RelativePath aaxFolderPath (getAAXPathValue().toString(), RelativePath::projectFolder); | |||||
| addToExtraSearchPaths (aaxFolderPath); | addToExtraSearchPaths (aaxFolderPath); | ||||
| addToExtraSearchPaths (aaxFolderPath.getChildFile ("Interfaces")); | addToExtraSearchPaths (aaxFolderPath.getChildFile ("Interfaces")); | ||||
| @@ -399,8 +399,8 @@ void ProjectExporter::addAAXFoldersToPath() | |||||
| //============================================================================== | //============================================================================== | ||||
| StringPairArray ProjectExporter::getAllPreprocessorDefs (const BuildConfiguration& config, const ProjectType::Target::Type targetType) const | StringPairArray ProjectExporter::getAllPreprocessorDefs (const BuildConfiguration& config, const ProjectType::Target::Type targetType) const | ||||
| { | { | ||||
| StringPairArray defs (mergePreprocessorDefs (config.getAllPreprocessorDefs(), | |||||
| parsePreprocessorDefs (getExporterPreprocessorDefsString()))); | |||||
| auto defs = mergePreprocessorDefs (config.getAllPreprocessorDefs(), | |||||
| parsePreprocessorDefs (getExporterPreprocessorDefsString())); | |||||
| addDefaultPreprocessorDefs (defs); | addDefaultPreprocessorDefs (defs); | ||||
| addTargetSpecificPreprocessorDefs (defs, targetType); | addTargetSpecificPreprocessorDefs (defs, targetType); | ||||
| @@ -409,8 +409,8 @@ StringPairArray ProjectExporter::getAllPreprocessorDefs (const BuildConfiguratio | |||||
| StringPairArray ProjectExporter::getAllPreprocessorDefs() const | StringPairArray ProjectExporter::getAllPreprocessorDefs() const | ||||
| { | { | ||||
| StringPairArray defs (mergePreprocessorDefs (project.getPreprocessorDefs(), | |||||
| parsePreprocessorDefs (getExporterPreprocessorDefsString()))); | |||||
| auto defs = mergePreprocessorDefs (project.getPreprocessorDefs(), | |||||
| parsePreprocessorDefs (getExporterPreprocessorDefsString())); | |||||
| addDefaultPreprocessorDefs (defs); | addDefaultPreprocessorDefs (defs); | ||||
| return defs; | return defs; | ||||
| } | } | ||||
| @@ -474,9 +474,9 @@ Project::Item& ProjectExporter::getModulesGroup() | |||||
| void ProjectExporter::addProjectPathToBuildPathList (StringArray& pathList, const RelativePath& pathFromProjectFolder, int index) const | void ProjectExporter::addProjectPathToBuildPathList (StringArray& pathList, const RelativePath& pathFromProjectFolder, int index) const | ||||
| { | { | ||||
| const auto localPath = RelativePath (rebaseFromProjectFolderToBuildTarget (pathFromProjectFolder)); | |||||
| auto localPath = RelativePath (rebaseFromProjectFolderToBuildTarget (pathFromProjectFolder)); | |||||
| const auto path = isVisualStudio() ? localPath.toWindowsStyle() : localPath.toUnixStyle(); | |||||
| auto path = isVisualStudio() ? localPath.toWindowsStyle() : localPath.toUnixStyle(); | |||||
| if (! pathList.contains (path)) | if (! pathList.contains (path)) | ||||
| pathList.insert (index, path); | pathList.insert (index, path); | ||||
| @@ -494,10 +494,10 @@ void ProjectExporter::addToExtraSearchPaths (const RelativePath& pathFromProject | |||||
| Value ProjectExporter::getPathForModuleValue (const String& moduleID) | Value ProjectExporter::getPathForModuleValue (const String& moduleID) | ||||
| { | { | ||||
| UndoManager* um = project.getUndoManagerFor (settings); | |||||
| auto* um = getUndoManager(); | |||||
| ValueTree paths (settings.getOrCreateChildWithName (Ids::MODULEPATHS, um)); | |||||
| ValueTree m (paths.getChildWithProperty (Ids::ID, moduleID)); | |||||
| auto paths = settings.getOrCreateChildWithName (Ids::MODULEPATHS, um); | |||||
| auto m = paths.getChildWithProperty (Ids::ID, moduleID); | |||||
| if (! m.isValid()) | if (! m.isValid()) | ||||
| { | { | ||||
| @@ -533,8 +533,9 @@ String ProjectExporter::getPathForModuleString (const String& moduleID) const | |||||
| void ProjectExporter::removePathForModule (const String& moduleID) | void ProjectExporter::removePathForModule (const String& moduleID) | ||||
| { | { | ||||
| ValueTree paths (settings.getChildWithName (Ids::MODULEPATHS)); | |||||
| ValueTree m (paths.getChildWithProperty (Ids::ID, moduleID)); | |||||
| auto paths = settings.getChildWithName (Ids::MODULEPATHS); | |||||
| auto m = paths.getChildWithProperty (Ids::ID, moduleID); | |||||
| paths.removeChild (m, project.getUndoManagerFor (settings)); | paths.removeChild (m, project.getUndoManagerFor (settings)); | ||||
| } | } | ||||
| @@ -556,7 +557,7 @@ RelativePath ProjectExporter::getModuleFolderRelativeToProject (const String& mo | |||||
| return RelativePath (project.getRelativePathForFile (project.getLocalModuleFolder (moduleID)), | return RelativePath (project.getRelativePathForFile (project.getLocalModuleFolder (moduleID)), | ||||
| RelativePath::projectFolder); | RelativePath::projectFolder); | ||||
| String path (getPathForModuleString (moduleID)); | |||||
| auto path = getPathForModuleString (moduleID); | |||||
| if (path.isEmpty()) | if (path.isEmpty()) | ||||
| return getLegacyModulePath (moduleID).getChildFile (moduleID); | return getLegacyModulePath (moduleID).getChildFile (moduleID); | ||||
| @@ -576,7 +577,7 @@ RelativePath ProjectExporter::getLegacyModulePath (const String& moduleID) const | |||||
| .getChildFile ("modules") | .getChildFile ("modules") | ||||
| .getChildFile (moduleID)), RelativePath::projectFolder); | .getChildFile (moduleID)), RelativePath::projectFolder); | ||||
| String oldJucePath (getLegacyModulePath()); | |||||
| auto oldJucePath = getLegacyModulePath(); | |||||
| if (oldJucePath.isEmpty()) | if (oldJucePath.isEmpty()) | ||||
| return RelativePath(); | return RelativePath(); | ||||
| @@ -590,13 +591,13 @@ RelativePath ProjectExporter::getLegacyModulePath (const String& moduleID) const | |||||
| void ProjectExporter::updateOldModulePaths() | void ProjectExporter::updateOldModulePaths() | ||||
| { | { | ||||
| String oldPath (getLegacyModulePath()); | |||||
| auto oldPath = getLegacyModulePath(); | |||||
| if (oldPath.isNotEmpty()) | if (oldPath.isNotEmpty()) | ||||
| { | { | ||||
| for (int i = project.getModules().getNumModules(); --i >= 0;) | for (int i = project.getModules().getNumModules(); --i >= 0;) | ||||
| { | { | ||||
| String modID (project.getModules().getModuleID(i)); | |||||
| auto modID = project.getModules().getModuleID(i); | |||||
| getPathForModuleValue (modID) = getLegacyModulePath (modID).getParentDirectory().toUnixStyle(); | getPathForModuleValue (modID) = getLegacyModulePath (modID).getParentDirectory().toUnixStyle(); | ||||
| } | } | ||||
| @@ -621,7 +622,7 @@ void ProjectExporter::createDefaultModulePaths() | |||||
| { | { | ||||
| for (int i = project.getModules().getNumModules(); --i >= 0;) | for (int i = project.getModules().getNumModules(); --i >= 0;) | ||||
| { | { | ||||
| String modID (project.getModules().getModuleID(i)); | |||||
| auto modID = project.getModules().getModuleID (i); | |||||
| getPathForModuleValue (modID) = exporter->getPathForModuleValue (modID).getValue(); | getPathForModuleValue (modID) = exporter->getPathForModuleValue (modID).getValue(); | ||||
| } | } | ||||
| @@ -635,7 +636,7 @@ void ProjectExporter::createDefaultModulePaths() | |||||
| { | { | ||||
| for (int i = project.getModules().getNumModules(); --i >= 0;) | for (int i = project.getModules().getNumModules(); --i >= 0;) | ||||
| { | { | ||||
| String modID (project.getModules().getModuleID(i)); | |||||
| auto modID = project.getModules().getModuleID (i); | |||||
| getPathForModuleValue (modID) = exporter->getPathForModuleValue (modID).getValue(); | getPathForModuleValue (modID) = exporter->getPathForModuleValue (modID).getValue(); | ||||
| } | } | ||||
| @@ -645,7 +646,7 @@ void ProjectExporter::createDefaultModulePaths() | |||||
| for (int i = project.getModules().getNumModules(); --i >= 0;) | for (int i = project.getModules().getNumModules(); --i >= 0;) | ||||
| { | { | ||||
| String modID (project.getModules().getModuleID(i)); | |||||
| auto modID = project.getModules().getModuleID (i); | |||||
| getPathForModuleValue (modID) = "../../juce"; | getPathForModuleValue (modID) = "../../juce"; | ||||
| } | } | ||||
| } | } | ||||
| @@ -668,7 +669,7 @@ ProjectExporter::BuildConfiguration::Ptr ProjectExporter::getConfiguration (int | |||||
| bool ProjectExporter::hasConfigurationNamed (const String& nameToFind) const | bool ProjectExporter::hasConfigurationNamed (const String& nameToFind) const | ||||
| { | { | ||||
| const ValueTree configs (getConfigurations()); | |||||
| auto configs = getConfigurations(); | |||||
| for (int i = configs.getNumChildren(); --i >= 0;) | for (int i = configs.getNumChildren(); --i >= 0;) | ||||
| if (configs.getChild(i) [Ids::name].toString() == nameToFind) | if (configs.getChild(i) [Ids::name].toString() == nameToFind) | ||||
| return true; | return true; | ||||
| @@ -678,7 +679,7 @@ bool ProjectExporter::hasConfigurationNamed (const String& nameToFind) const | |||||
| String ProjectExporter::getUniqueConfigName (String nm) const | String ProjectExporter::getUniqueConfigName (String nm) const | ||||
| { | { | ||||
| String nameRoot (nm); | |||||
| auto nameRoot = nm; | |||||
| while (CharacterFunctions::isDigit (nameRoot.getLastCharacter())) | while (CharacterFunctions::isDigit (nameRoot.getLastCharacter())) | ||||
| nameRoot = nameRoot.dropLastCharacters (1); | nameRoot = nameRoot.dropLastCharacters (1); | ||||
| @@ -777,19 +778,19 @@ Image ProjectExporter::getBestIconForSize (int size, bool returnNullIfNothingBig | |||||
| } | } | ||||
| if (im == nullptr) | if (im == nullptr) | ||||
| return Image(); | |||||
| return {}; | |||||
| if (returnNullIfNothingBigEnough && im->getWidth() < size && im->getHeight() < size) | if (returnNullIfNothingBigEnough && im->getWidth() < size && im->getHeight() < size) | ||||
| return Image(); | |||||
| return {}; | |||||
| return rescaleImageForIcon (*im, size); | return rescaleImageForIcon (*im, size); | ||||
| } | } | ||||
| Image ProjectExporter::rescaleImageForIcon (Drawable& d, const int size) | Image ProjectExporter::rescaleImageForIcon (Drawable& d, const int size) | ||||
| { | { | ||||
| if (DrawableImage* drawableImage = dynamic_cast<DrawableImage*> (&d)) | |||||
| if (auto* drawableImage = dynamic_cast<DrawableImage*> (&d)) | |||||
| { | { | ||||
| Image im = SoftwareImageType().convert (drawableImage->getImage()); | |||||
| auto im = SoftwareImageType().convert (drawableImage->getImage()); | |||||
| if (size == im.getWidth() && size == im.getHeight()) | if (size == im.getWidth() && size == im.getHeight()) | ||||
| return im; | return im; | ||||
| @@ -845,16 +846,16 @@ bool ProjectExporter::ConstConfigIterator::next() | |||||
| //============================================================================== | //============================================================================== | ||||
| ProjectExporter::BuildConfiguration::BuildConfiguration (Project& p, const ValueTree& configNode, const ProjectExporter& e) | ProjectExporter::BuildConfiguration::BuildConfiguration (Project& p, const ValueTree& configNode, const ProjectExporter& e) | ||||
| : config (configNode), project (p), exporter (e), | : config (configNode), project (p), exporter (e), | ||||
| isDebugValue (config, Ids::isDebug, getUndoManager(), getValue (Ids::isDebug)), | |||||
| configNameValue (config, Ids::name, getUndoManager(), "Build Configuration"), | |||||
| targetNameValue (config, Ids::targetName, getUndoManager(), project.getProjectFilenameRootString()), | |||||
| targetBinaryPathValue (config, Ids::binaryPath, getUndoManager()), | |||||
| optimisationLevelValue (config, Ids::optimisation, getUndoManager()), | |||||
| isDebugValue (config, Ids::isDebug, getUndoManager(), getValue (Ids::isDebug)), | |||||
| configNameValue (config, Ids::name, getUndoManager(), "Build Configuration"), | |||||
| targetNameValue (config, Ids::targetName, getUndoManager(), project.getProjectFilenameRootString()), | |||||
| targetBinaryPathValue (config, Ids::binaryPath, getUndoManager()), | |||||
| optimisationLevelValue (config, Ids::optimisation, getUndoManager()), | |||||
| linkTimeOptimisationValue (config, Ids::linkTimeOptimisation, getUndoManager(), ! isDebug()), | linkTimeOptimisationValue (config, Ids::linkTimeOptimisation, getUndoManager(), ! isDebug()), | ||||
| ppDefinesValue (config, Ids::defines, getUndoManager()), | |||||
| headerSearchPathValue (config, Ids::headerPath, getUndoManager()), | |||||
| librarySearchPathValue (config, Ids::libraryPath, getUndoManager()), | |||||
| userNotesValue (config, Ids::userNotes, getUndoManager()) | |||||
| ppDefinesValue (config, Ids::defines, getUndoManager()), | |||||
| headerSearchPathValue (config, Ids::headerPath, getUndoManager()), | |||||
| librarySearchPathValue (config, Ids::libraryPath, getUndoManager()), | |||||
| userNotesValue (config, Ids::userNotes, getUndoManager()) | |||||
| { | { | ||||
| } | } | ||||
| @@ -928,17 +929,17 @@ StringPairArray ProjectExporter::BuildConfiguration::getAllPreprocessorDefs() co | |||||
| StringPairArray ProjectExporter::BuildConfiguration::getUniquePreprocessorDefs() const | StringPairArray ProjectExporter::BuildConfiguration::getUniquePreprocessorDefs() const | ||||
| { | { | ||||
| StringPairArray perConfigurationDefs (parsePreprocessorDefs (getBuildConfigPreprocessorDefsString())); | |||||
| const StringPairArray globalDefs (project.getPreprocessorDefs()); | |||||
| auto perConfigurationDefs = parsePreprocessorDefs (getBuildConfigPreprocessorDefsString()); | |||||
| auto globalDefs = project.getPreprocessorDefs(); | |||||
| for (int i = 0; i < globalDefs.size(); ++i) | for (int i = 0; i < globalDefs.size(); ++i) | ||||
| { | { | ||||
| String globalKey = globalDefs.getAllKeys()[i]; | |||||
| auto globalKey = globalDefs.getAllKeys()[i]; | |||||
| int idx = perConfigurationDefs.getAllKeys().indexOf (globalKey); | int idx = perConfigurationDefs.getAllKeys().indexOf (globalKey); | ||||
| if (idx >= 0) | if (idx >= 0) | ||||
| { | { | ||||
| String globalValue = globalDefs.getAllValues()[i]; | |||||
| auto globalValue = globalDefs.getAllValues()[i]; | |||||
| if (globalValue == perConfigurationDefs.getAllValues()[idx]) | if (globalValue == perConfigurationDefs.getAllValues()[idx]) | ||||
| perConfigurationDefs.remove (idx); | perConfigurationDefs.remove (idx); | ||||
| @@ -966,8 +967,7 @@ StringArray ProjectExporter::BuildConfiguration::getLibrarySearchPaths() const | |||||
| String ProjectExporter::getExternalLibraryFlags (const BuildConfiguration& config) const | String ProjectExporter::getExternalLibraryFlags (const BuildConfiguration& config) const | ||||
| { | { | ||||
| StringArray libraries; | |||||
| libraries.addTokens (getExternalLibrariesString(), ";\n", "\"'"); | |||||
| auto libraries = StringArray::fromTokens (getExternalLibrariesString(), ";\n", "\"'"); | |||||
| libraries.removeEmptyStrings (true); | libraries.removeEmptyStrings (true); | ||||
| if (libraries.size() != 0) | if (libraries.size() != 0) | ||||
| @@ -134,27 +134,27 @@ public: | |||||
| String getName() const; | String getName() const; | ||||
| File getTargetFolder() const; | File getTargetFolder() const; | ||||
| Project& getProject() noexcept { return project; } | |||||
| const Project& getProject() const noexcept { return project; } | |||||
| Project& getProject() noexcept { return project; } | |||||
| const Project& getProject() const noexcept { return project; } | |||||
| UndoManager* getUndoManager() const { return project.getUndoManagerFor (settings); } | UndoManager* getUndoManager() const { return project.getUndoManagerFor (settings); } | ||||
| Value getSetting (const Identifier& nm) { return settings.getPropertyAsValue (nm, project.getUndoManagerFor (settings)); } | Value getSetting (const Identifier& nm) { return settings.getPropertyAsValue (nm, project.getUndoManagerFor (settings)); } | ||||
| String getSettingString (const Identifier& nm) const { return settings [nm]; } | String getSettingString (const Identifier& nm) const { return settings [nm]; } | ||||
| Value getTargetLocationValue() { return targetLocationValue.getPropertyAsValue(); } | |||||
| String getTargetLocationString() const { return targetLocationValue.get(); } | |||||
| Value getTargetLocationValue() { return targetLocationValue.getPropertyAsValue(); } | |||||
| String getTargetLocationString() const { return targetLocationValue.get(); } | |||||
| String getExtraCompilerFlagsString() const { return extraCompilerFlagsValue.get().toString().replaceCharacters ("\r\n", " "); } | |||||
| String getExtraLinkerFlagsString() const { return extraLinkerFlagsValue.get().toString().replaceCharacters ("\r\n", " "); } | |||||
| String getExtraCompilerFlagsString() const { return extraCompilerFlagsValue.get().toString().replaceCharacters ("\r\n", " "); } | |||||
| String getExtraLinkerFlagsString() const { return extraLinkerFlagsValue.get().toString().replaceCharacters ("\r\n", " "); } | |||||
| String getExternalLibrariesString() const { return getSearchPathsFromString (externalLibrariesValue.get().toString()).joinIntoString (";"); } | |||||
| String getExternalLibrariesString() const { return getSearchPathsFromString (externalLibrariesValue.get().toString()).joinIntoString (";"); } | |||||
| bool shouldUseGNUExtensions() const { return gnuExtensionsValue.get();} | |||||
| bool shouldUseGNUExtensions() const { return gnuExtensionsValue.get();} | |||||
| Value getVST3PathValue() const { return vst3Path; } | |||||
| Value getRTASPathValue() const { return rtasPath; } | |||||
| Value getAAXPathValue() const { return aaxPath; } | |||||
| Value getVST3PathValue() const { return vst3Path; } | |||||
| Value getRTASPathValue() const { return rtasPath; } | |||||
| Value getAAXPathValue() const { return aaxPath; } | |||||
| // NB: this is the path to the parent "modules" folder that contains the named module, not the | // NB: this is the path to the parent "modules" folder that contains the named module, not the | ||||
| // module folder itself. | // module folder itself. | ||||
| @@ -378,15 +378,8 @@ protected: | |||||
| static String getDefaultBuildsRootFolder() { return "Builds/"; } | static String getDefaultBuildsRootFolder() { return "Builds/"; } | ||||
| static String getStaticLibbedFilename (String name) | |||||
| { | |||||
| return addSuffix (addLibPrefix (name), ".a"); | |||||
| } | |||||
| static String getDynamicLibbedFilename (String name) | |||||
| { | |||||
| return addSuffix (addLibPrefix (name), ".so"); | |||||
| } | |||||
| static String getStaticLibbedFilename (String name) { return addSuffix (addLibPrefix (name), ".a"); } | |||||
| static String getDynamicLibbedFilename (String name) { return addSuffix (addLibPrefix (name), ".so"); } | |||||
| virtual void addPlatformSpecificSettingsForProjectType (const ProjectType&) = 0; | virtual void addPlatformSpecificSettingsForProjectType (const ProjectType&) = 0; | ||||
| @@ -34,8 +34,7 @@ namespace | |||||
| { | { | ||||
| inline int countMaxPluginChannels (const String& configString, bool isInput) | inline int countMaxPluginChannels (const String& configString, bool isInput) | ||||
| { | { | ||||
| StringArray configs; | |||||
| configs.addTokens (configString, ", {}", StringRef()); | |||||
| auto configs = StringArray::fromTokens (configString, ", {}", {}); | |||||
| configs.trim(); | configs.trim(); | ||||
| configs.removeEmptyStrings(); | configs.removeEmptyStrings(); | ||||
| jassert ((configs.size() & 1) == 0); // looks like a syntax error in the configs? | jassert ((configs.size() & 1) == 0); // looks like a syntax error in the configs? | ||||
| @@ -156,7 +155,7 @@ void ProjectSaver::writeProjects (const OwnedArray<LibraryModule>& modules, cons | |||||
| ThreadPool threadPool; | ThreadPool threadPool; | ||||
| // keep a copy of the basic generated files group, as each exporter may modify it. | // keep a copy of the basic generated files group, as each exporter may modify it. | ||||
| const ValueTree originalGeneratedGroup (generatedFilesGroup.state.createCopy()); | |||||
| auto originalGeneratedGroup = generatedFilesGroup.state.createCopy(); | |||||
| CLionProjectExporter* clionExporter = nullptr; | CLionProjectExporter* clionExporter = nullptr; | ||||
| OwnedArray<ProjectExporter> exporters; | OwnedArray<ProjectExporter> exporters; | ||||
| @@ -38,8 +38,7 @@ public: | |||||
| : project (p), | : project (p), | ||||
| projectFile (file), | projectFile (file), | ||||
| generatedCodeFolder (project.getGeneratedCodeFolder()), | generatedCodeFolder (project.getGeneratedCodeFolder()), | ||||
| generatedFilesGroup (Project::Item::createGroup (project, getJuceCodeGroupName(), "__generatedcode__", true)), | |||||
| hasBinaryData (false) | |||||
| generatedFilesGroup (Project::Item::createGroup (project, getJuceCodeGroupName(), "__generatedcode__", true)) | |||||
| { | { | ||||
| generatedFilesGroup.setID (getGeneratedGroupID()); | generatedFilesGroup.setID (getGeneratedGroupID()); | ||||
| } | } | ||||
| @@ -49,7 +48,7 @@ public: | |||||
| public: | public: | ||||
| SaveThread (ProjectSaver& ps, bool wait, const String& exp) | SaveThread (ProjectSaver& ps, bool wait, const String& exp) | ||||
| : ThreadWithProgressWindow ("Saving...", true, false), | : ThreadWithProgressWindow ("Saving...", true, false), | ||||
| saver (ps), result (Result::ok()), | |||||
| saver (ps), | |||||
| shouldWaitAfterSaving (wait), | shouldWaitAfterSaving (wait), | ||||
| specifiedExporterToSave (exp) | specifiedExporterToSave (exp) | ||||
| {} | {} | ||||
| @@ -61,7 +60,7 @@ public: | |||||
| } | } | ||||
| ProjectSaver& saver; | ProjectSaver& saver; | ||||
| Result result; | |||||
| Result result = Result::ok(); | |||||
| bool shouldWaitAfterSaving; | bool shouldWaitAfterSaving; | ||||
| String specifiedExporterToSave; | String specifiedExporterToSave; | ||||
| @@ -77,9 +76,9 @@ public: | |||||
| return thread.result; | return thread.result; | ||||
| } | } | ||||
| const String appConfigUserContent (loadUserContentFromAppConfig()); | |||||
| auto appConfigUserContent = loadUserContentFromAppConfig(); | |||||
| const File oldFile (project.getFile()); | |||||
| auto oldFile = project.getFile(); | |||||
| project.setFile (projectFile); | project.setFile (projectFile); | ||||
| OwnedArray<LibraryModule> modules; | OwnedArray<LibraryModule> modules; | ||||
| @@ -138,17 +137,17 @@ public: | |||||
| return Project::Item (project, ValueTree(), false); | return Project::Item (project, ValueTree(), false); | ||||
| } | } | ||||
| const File file (generatedCodeFolder.getChildFile (filePath)); | |||||
| auto file = generatedCodeFolder.getChildFile (filePath); | |||||
| if (replaceFileIfDifferent (file, newData)) | if (replaceFileIfDifferent (file, newData)) | ||||
| return addFileToGeneratedGroup (file); | return addFileToGeneratedGroup (file); | ||||
| return Project::Item (project, ValueTree(), true); | |||||
| return { project, {}, true }; | |||||
| } | } | ||||
| Project::Item addFileToGeneratedGroup (const File& file) | Project::Item addFileToGeneratedGroup (const File& file) | ||||
| { | { | ||||
| Project::Item item (generatedFilesGroup.findItemForFile (file)); | |||||
| auto item = generatedFilesGroup.findItemForFile (file); | |||||
| if (item.isValid()) | if (item.isValid()) | ||||
| return item; | return item; | ||||
| @@ -230,7 +229,7 @@ private: | |||||
| CriticalSection errorLock; | CriticalSection errorLock; | ||||
| File appConfigFile; | File appConfigFile; | ||||
| bool hasBinaryData; | |||||
| bool hasBinaryData = false; | |||||
| // 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. | ||||
| @@ -243,7 +242,7 @@ private: | |||||
| bool isFolder; | bool isFolder; | ||||
| while (i.next (&isFolder, nullptr, nullptr, nullptr, nullptr, nullptr)) | while (i.next (&isFolder, nullptr, nullptr, nullptr, nullptr, nullptr)) | ||||
| { | { | ||||
| const File f (i.getFile()); | |||||
| auto f = i.getFile(); | |||||
| if (filesCreated.contains (f) || shouldFileBeKept (f.getFileName())) | if (filesCreated.contains (f) || shouldFileBeKept (f.getFileName())) | ||||
| { | { | ||||
| @@ -306,10 +305,10 @@ private: | |||||
| String loadUserContentFromAppConfig() const | String loadUserContentFromAppConfig() const | ||||
| { | { | ||||
| StringArray lines, userContent; | |||||
| lines.addLines (getAppConfigFile().loadFileAsString()); | |||||
| StringArray userContent; | |||||
| bool foundCodeSection = false; | bool foundCodeSection = false; | ||||
| auto lines = StringArray::fromLines (getAppConfigFile().loadFileAsString()); | |||||
| for (int i = 0; i < lines.size(); ++i) | for (int i = 0; i < lines.size(); ++i) | ||||
| { | { | ||||
| if (lines[i].contains ("[BEGIN_USER_CODE_SECTION]")) | if (lines[i].contains ("[BEGIN_USER_CODE_SECTION]")) | ||||
| @@ -324,9 +323,9 @@ private: | |||||
| if (! foundCodeSection) | if (! foundCodeSection) | ||||
| { | { | ||||
| userContent.add (String()); | |||||
| userContent.add ({}); | |||||
| userContent.add ("// (You can add your own code in this section, and the Projucer will not overwrite it)"); | userContent.add ("// (You can add your own code in this section, and the Projucer will not overwrite it)"); | ||||
| userContent.add (String()); | |||||
| userContent.add ({}); | |||||
| } | } | ||||
| return userContent.joinIntoString (newLine) + newLine; | return userContent.joinIntoString (newLine) + newLine; | ||||
| @@ -343,7 +342,7 @@ private: | |||||
| for (LibraryModule** moduleIter = modules.begin(); moduleIter != modules.end(); ++moduleIter) | for (LibraryModule** moduleIter = modules.begin(); moduleIter != modules.end(); ++moduleIter) | ||||
| { | { | ||||
| if (const LibraryModule* const module = *moduleIter) | |||||
| if (auto* module = *moduleIter) | |||||
| { | { | ||||
| if (! module->isValid()) | if (! module->isValid()) | ||||
| { | { | ||||
| @@ -417,11 +416,11 @@ private: | |||||
| out << newLine | out << newLine | ||||
| << "//==============================================================================" << newLine; | << "//==============================================================================" << newLine; | ||||
| const int longestName = findLongestModuleName (modules); | |||||
| auto longestName = findLongestModuleName (modules); | |||||
| for (int k = 0; k < modules.size(); ++k) | for (int k = 0; k < modules.size(); ++k) | ||||
| { | { | ||||
| LibraryModule* const m = modules.getUnchecked(k); | |||||
| auto* m = modules.getUnchecked(k); | |||||
| out << "#define JUCE_MODULE_AVAILABLE_" << m->getID() | out << "#define JUCE_MODULE_AVAILABLE_" << m->getID() | ||||
| << String::repeatedString (" ", longestName + 5 - m->getID().length()) << " 1" << newLine; | << String::repeatedString (" ", longestName + 5 - m->getID().length()) << " 1" << newLine; | ||||
| } | } | ||||
| @@ -430,7 +429,7 @@ private: | |||||
| for (int j = 0; j < modules.size(); ++j) | for (int j = 0; j < modules.size(); ++j) | ||||
| { | { | ||||
| LibraryModule* const m = modules.getUnchecked(j); | |||||
| auto* m = modules.getUnchecked(j); | |||||
| OwnedArray<Project::ConfigFlag> flags; | OwnedArray<Project::ConfigFlag> flags; | ||||
| m->getConfigFlags (project, flags); | m->getConfigFlags (project, flags); | ||||
| @@ -455,7 +454,7 @@ private: | |||||
| { | { | ||||
| int isStandaloneApplication = 1; | int isStandaloneApplication = 1; | ||||
| const ProjectType& type = project.getProjectType(); | |||||
| auto& type = project.getProjectType(); | |||||
| if (type.isAudioPlugin() || type.isDynamicLibrary()) | if (type.isAudioPlugin() || type.isDynamicLibrary()) | ||||
| isStandaloneApplication = 0; | isStandaloneApplication = 0; | ||||
| @@ -563,7 +562,7 @@ private: | |||||
| void writeBinaryDataFiles() | void writeBinaryDataFiles() | ||||
| { | { | ||||
| const File binaryDataH (project.getBinaryDataHeaderFile()); | |||||
| auto binaryDataH = project.getBinaryDataHeaderFile(); | |||||
| ResourceFile resourceFile (project); | ResourceFile resourceFile (project); | ||||
| @@ -577,11 +576,11 @@ private: | |||||
| Array<File> binaryDataFiles; | Array<File> binaryDataFiles; | ||||
| int maxSize = project.getMaxBinaryFileSize(); | |||||
| auto maxSize = project.getMaxBinaryFileSize(); | |||||
| if (maxSize <= 0) | if (maxSize <= 0) | ||||
| maxSize = 10 * 1024 * 1024; | maxSize = 10 * 1024 * 1024; | ||||
| Result r (resourceFile.write (binaryDataFiles, maxSize)); | |||||
| auto r = resourceFile.write (binaryDataFiles, maxSize); | |||||
| if (r.wasOk()) | if (r.wasOk()) | ||||
| { | { | ||||
| @@ -589,7 +588,7 @@ private: | |||||
| for (int i = 0; i < binaryDataFiles.size(); ++i) | for (int i = 0; i < binaryDataFiles.size(); ++i) | ||||
| { | { | ||||
| const File& f = binaryDataFiles.getReference(i); | |||||
| auto& f = binaryDataFiles.getReference(i); | |||||
| filesCreated.add (f); | filesCreated.add (f); | ||||
| generatedFilesGroup.addFileRetainingSortOrder (f, ! f.hasFileExtension (".h")); | generatedFilesGroup.addFileRetainingSortOrder (f, ! f.hasFileExtension (".h")); | ||||
| @@ -30,9 +30,7 @@ | |||||
| static const char* resourceFileIdentifierString = "JUCER_BINARY_RESOURCE"; | static const char* resourceFileIdentifierString = "JUCER_BINARY_RESOURCE"; | ||||
| //============================================================================== | //============================================================================== | ||||
| ResourceFile::ResourceFile (Project& p) | |||||
| : project (p), | |||||
| className ("BinaryData") | |||||
| ResourceFile::ResourceFile (Project& p) : project (p) | |||||
| { | { | ||||
| addResourcesFromProjectItem (project.getMainGroup()); | addResourcesFromProjectItem (project.getMainGroup()); | ||||
| } | } | ||||
| @@ -66,8 +64,8 @@ void ResourceFile::addFile (const File& file) | |||||
| { | { | ||||
| files.add (file); | files.add (file); | ||||
| const String variableNameRoot (CodeHelpers::makeBinaryDataIdentifierName (file)); | |||||
| String variableName (variableNameRoot); | |||||
| auto variableNameRoot = CodeHelpers::makeBinaryDataIdentifierName (file); | |||||
| auto variableName = variableNameRoot; | |||||
| int suffix = 2; | int suffix = 2; | ||||
| while (variableNames.contains (variableName)) | while (variableNames.contains (variableName)) | ||||
| @@ -123,14 +121,14 @@ Result ResourceFile::writeHeader (MemoryOutputStream& header) | |||||
| for (int i = 0; i < files.size(); ++i) | for (int i = 0; i < files.size(); ++i) | ||||
| { | { | ||||
| const File& file = files.getReference(i); | |||||
| auto& file = files.getReference(i); | |||||
| if (! file.existsAsFile()) | if (! file.existsAsFile()) | ||||
| return Result::fail ("Can't open resource file: " + file.getFullPathName()); | return Result::fail ("Can't open resource file: " + file.getFullPathName()); | ||||
| const int64 dataSize = file.getSize(); | |||||
| auto dataSize = file.getSize(); | |||||
| const String variableName (variableNames[i]); | |||||
| auto variableName = variableNames[i]; | |||||
| FileInputStream fileStream (file); | FileInputStream fileStream (file); | ||||
| @@ -160,7 +158,7 @@ Result ResourceFile::writeHeader (MemoryOutputStream& header) | |||||
| Result ResourceFile::writeCpp (MemoryOutputStream& cpp, const File& headerFile, int& i, const int maxFileSize) | Result ResourceFile::writeCpp (MemoryOutputStream& cpp, const File& headerFile, int& i, const int maxFileSize) | ||||
| { | { | ||||
| const bool isFirstFile = (i == 0); | |||||
| bool isFirstFile = (i == 0); | |||||
| cpp << "/* ==================================== " << resourceFileIdentifierString << " ====================================" | cpp << "/* ==================================== " << resourceFileIdentifierString << " ====================================" | ||||
| << getComment() | << getComment() | ||||
| @@ -171,8 +169,8 @@ Result ResourceFile::writeCpp (MemoryOutputStream& cpp, const File& headerFile, | |||||
| while (i < files.size()) | while (i < files.size()) | ||||
| { | { | ||||
| const File& file = files.getReference(i); | |||||
| const String variableName (variableNames[i]); | |||||
| auto& file = files.getReference(i); | |||||
| auto variableName = variableNames[i]; | |||||
| FileInputStream fileStream (file); | FileInputStream fileStream (file); | ||||
| @@ -181,10 +179,10 @@ Result ResourceFile::writeCpp (MemoryOutputStream& cpp, const File& headerFile, | |||||
| containsAnyImages = containsAnyImages | containsAnyImages = containsAnyImages | ||||
| || (ImageFileFormat::findImageFormatForStream (fileStream) != nullptr); | || (ImageFileFormat::findImageFormatForStream (fileStream) != nullptr); | ||||
| const String tempVariable ("temp_binary_data_" + String (i)); | |||||
| auto tempVariable = "temp_binary_data_" + String (i); | |||||
| cpp << newLine << "//================== " << file.getFileName() << " ==================" << newLine | cpp << newLine << "//================== " << file.getFileName() << " ==================" << newLine | ||||
| << "static const unsigned char " << tempVariable << "[] =" << newLine; | |||||
| << "static const unsigned char " << tempVariable << "[] =" << newLine; | |||||
| { | { | ||||
| MemoryBlock data; | MemoryBlock data; | ||||
| @@ -224,8 +222,8 @@ Result ResourceFile::writeCpp (MemoryOutputStream& cpp, const File& headerFile, | |||||
| StringArray returnCodes; | StringArray returnCodes; | ||||
| for (int j = 0; j < files.size(); ++j) | for (int j = 0; j < files.size(); ++j) | ||||
| { | { | ||||
| const File& file = files.getReference(j); | |||||
| const int64 dataSize = file.getSize(); | |||||
| auto& file = files.getReference(j); | |||||
| auto dataSize = file.getSize(); | |||||
| returnCodes.add ("numBytes = " + String (dataSize) + "; return " + variableNames[j] + ";"); | returnCodes.add ("numBytes = " + String (dataSize) + "; return " + variableNames[j] + ";"); | ||||
| } | } | ||||
| @@ -252,11 +250,11 @@ Result ResourceFile::writeCpp (MemoryOutputStream& cpp, const File& headerFile, | |||||
| Result ResourceFile::write (Array<File>& filesCreated, const int maxFileSize) | Result ResourceFile::write (Array<File>& filesCreated, const int maxFileSize) | ||||
| { | { | ||||
| const File headerFile (project.getBinaryDataHeaderFile()); | |||||
| auto headerFile = project.getBinaryDataHeaderFile(); | |||||
| { | { | ||||
| MemoryOutputStream mo; | MemoryOutputStream mo; | ||||
| Result r (writeHeader (mo)); | |||||
| auto r = writeHeader (mo); | |||||
| if (r.failed()) | if (r.failed()) | ||||
| return r; | return r; | ||||
| @@ -272,11 +270,11 @@ Result ResourceFile::write (Array<File>& filesCreated, const int maxFileSize) | |||||
| for (;;) | for (;;) | ||||
| { | { | ||||
| File cpp (project.getBinaryDataCppFile (fileIndex)); | |||||
| auto cpp = project.getBinaryDataCppFile (fileIndex); | |||||
| MemoryOutputStream mo; | MemoryOutputStream mo; | ||||
| Result r (writeCpp (mo, headerFile, i, maxFileSize)); | |||||
| auto r = writeCpp (mo, headerFile, i, maxFileSize); | |||||
| if (r.failed()) | if (r.failed()) | ||||
| return r; | return r; | ||||
| @@ -56,7 +56,7 @@ private: | |||||
| Array<File> files; | Array<File> files; | ||||
| StringArray variableNames; | StringArray variableNames; | ||||
| Project& project; | Project& project; | ||||
| String className; | |||||
| String className { "BinaryData" }; | |||||
| Result writeHeader (MemoryOutputStream&); | Result writeHeader (MemoryOutputStream&); | ||||
| Result writeCpp (MemoryOutputStream&, const File& headerFile, int& index, int maxFileSize); | Result writeCpp (MemoryOutputStream&, const File& headerFile, int& index, int maxFileSize); | ||||