void LibConfigProgram::computeDependencies(LibConfig::VersionInfo::Settings& version) { String::List deps; do { deps.clear(); { const String::List::const_iterator end = pOptModules.end(); for (String::List::const_iterator i = pOptModules.begin(); i != end; ++i) { const String::List& modDeps = version.moduleSettings[*i].dependencies; const String::List::const_iterator endJ = modDeps.end(); for (String::List::const_iterator j = modDeps.begin(); j != endJ; ++j) { if (pOptModules.end() == std::find(pOptModules.begin(), pOptModules.end(), *j)) deps.push_back(*j); } } } if (not deps.empty()) { // Merge results const String::List::const_iterator end = deps.end(); for (String::List::const_iterator i = deps.begin(); i != end; ++i) { if (pOptModules.end() == std::find(pOptModules.begin(), pOptModules.end(), *i)) pOptModules.push_back(*i); } } } while (not deps.empty()); }
void List::findFromPrefixes(const String::List& prefix) { if (not prefix.empty()) { const String::List::const_iterator end = prefix.end(); for (String::List::const_iterator i = prefix.begin(); i != end; ++i) loadFromPath(*i); } }
bool GlobDirs(String::List& out, const String& pattern, const bool emptyListBefore) { if (emptyListBefore) out.clear(); gResourcesMutex.lock(); for (ResourcesFoldersList::const_iterator i = pResourcesFolders.begin(); i != pResourcesFolders.end(); ++i) Paths::GlobDirs(out, *i + pattern, false); gResourcesMutex.unlock(); return !out.empty(); }