static Array<File> getAllPossibleModulePathsFromExporters (Project& project) { StringArray paths; for (Project::ExporterIterator exporter (project); exporter.next();) { auto& modules = project.getModules(); auto n = modules.getNumModules(); for (int i = 0; i < n; ++i) { auto id = modules.getModuleID (i); if (modules.shouldUseGlobalPath (id)) continue; const auto path = exporter->getPathForModuleString (id); if (path.isNotEmpty()) paths.addIfNotAlreadyThere (path); } String oldPath (exporter->getLegacyModulePath()); if (oldPath.isNotEmpty()) paths.addIfNotAlreadyThere (oldPath); } Array<File> files; for (auto& path : paths) { auto f = project.resolveFilename (path); if (f.isDirectory()) { files.addIfNotAlreadyThere (f); if (f.getChildFile ("modules").isDirectory()) files.addIfNotAlreadyThere (f.getChildFile ("modules")); } } return files; }
static Array<File> getAllPossibleModulePaths (Project& project) { StringArray paths; for (Project::ExporterIterator exporter (project); exporter.next();) { if (exporter->mayCompileOnCurrentOS()) { for (int i = 0; i < project.getModules().getNumModules(); ++i) { const String path (exporter->getPathForModuleString (project.getModules().getModuleID (i))); if (path.isNotEmpty()) paths.addIfNotAlreadyThere (path); } String oldPath (exporter->getLegacyModulePath()); if (oldPath.isNotEmpty()) paths.addIfNotAlreadyThere (oldPath); } } Array<File> files; for (int i = 0; i < paths.size(); ++i) { const File f (project.resolveFilename (paths[i])); if (f.isDirectory()) { files.add (f); if (f.getChildFile ("modules").isDirectory()) files.addIfNotAlreadyThere (f.getChildFile ("modules")); } } return files; }