diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2022-08-21 15:54:26 +0300 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2022-08-22 12:16:27 +0000 |
commit | da99fd9fe7176c7a21f4e1fa834e7f7aed24e08e (patch) | |
tree | 6ece711095cb8b40420735662301ca5037864f60 | |
parent | 3a177037a80e579a6767758b40dccd6f1acf3b68 (diff) | |
download | qbs-da99fd9fe7176c7a21f4e1fa834e7f7aed24e08e.tar.gz |
Minor refactor
Make module provider methods have similar signatures.
Also, rename methods to avoid confusion with what they
actually do.
Change-Id: I8a905667f8f583537837d26c07ba62f093709997
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r-- | src/lib/corelib/language/moduleloader.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/language/moduleproviderloader.cpp | 36 | ||||
-rw-r--r-- | src/lib/corelib/language/moduleproviderloader.h | 25 |
3 files changed, 32 insertions, 31 deletions
diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp index 574c03bfb..f17a4e200 100644 --- a/src/lib/corelib/language/moduleloader.cpp +++ b/src/lib/corelib/language/moduleloader.cpp @@ -3033,7 +3033,7 @@ Item *ModuleLoader::searchAndLoadModuleFile(ProductContext *productContext, if (existingPaths.isEmpty()) { // no suitable names found, try to use providers AccumulatingTimer providersTimer( m_parameters.logElapsedTime() ? &m_elapsedTimeModuleProviders : nullptr); - auto result = m_moduleProviderLoader->executeModuleProvider( + auto result = m_moduleProviderLoader->executeModuleProviders( *productContext, dependsItemLocation, moduleName, diff --git a/src/lib/corelib/language/moduleproviderloader.cpp b/src/lib/corelib/language/moduleproviderloader.cpp index 49c77b7fc..8ff08a1b7 100644 --- a/src/lib/corelib/language/moduleproviderloader.cpp +++ b/src/lib/corelib/language/moduleproviderloader.cpp @@ -71,7 +71,7 @@ ModuleProviderLoader::ModuleProviderLoader(ItemReader *reader, Evaluator *evalua { } -ModuleProviderLoader::ModuleProviderResult ModuleProviderLoader::executeModuleProvider( +ModuleProviderLoader::ModuleProviderResult ModuleProviderLoader::executeModuleProviders( ProductContext &productContext, const CodeLocation &dependsItemLocation, const QualifiedId &moduleName, @@ -91,33 +91,33 @@ ModuleProviderLoader::ModuleProviderResult ModuleProviderLoader::executeModulePr providersToRun.push_back({providerName, ModuleProviderLookup::Scoped}); } } - result = findModuleProvider(providersToRun, productContext, dependsItemLocation); + result = executeModuleProvidersHelper(productContext, dependsItemLocation, providersToRun); if (fallbackMode == FallbackMode::Enabled && !result.providerFound && !providerNames) { qCDebug(lcModuleLoader) << "Specific module provider not found for" << moduleName.toString() << ", setting up fallback."; - result = findModuleProvider( - {{moduleName, ModuleProviderLookup::Fallback}}, + result = executeModuleProvidersHelper( productContext, - dependsItemLocation); + dependsItemLocation, + {{moduleName, ModuleProviderLookup::Fallback}}); } return result; } -ModuleProviderLoader::ModuleProviderResult ModuleProviderLoader::findModuleProvider( - const std::vector<Provider> &providers, +ModuleProviderLoader::ModuleProviderResult ModuleProviderLoader::executeModuleProvidersHelper( ProductContext &product, - const CodeLocation &dependsItemLocation) + const CodeLocation &dependsItemLocation, + const std::vector<Provider> &providers) { if (providers.empty()) return {}; QStringList allSearchPaths; ModuleProviderResult result; for (const auto &[name, lookupType] : providers) { - const QVariantMap config = moduleProviderConfig(product).value(name.toString()).toMap(); + const QVariantMap config = getModuleProviderConfig(product).value(name.toString()).toMap(); ModuleProviderInfo &info = m_storedModuleProviderInfo.providers[{name.toString(), config, int(lookupType)}]; const bool fromCache = !info.name.isEmpty(); @@ -127,8 +127,8 @@ ModuleProviderLoader::ModuleProviderResult ModuleProviderLoader::findModuleProvi info.providerFile = findModuleProviderFile(name, lookupType); if (!info.providerFile.isEmpty()) { qCDebug(lcModuleLoader) << "Running provider" << name << "at" << info.providerFile; - info.searchPaths = getProviderSearchPaths( - name, info.providerFile, product, config, dependsItemLocation); + info.searchPaths = evaluateModuleProvider( + product, dependsItemLocation, name, info.providerFile, config); info.transientOutput = m_parameters.dryRun(); } } @@ -160,7 +160,7 @@ ModuleProviderLoader::ModuleProviderResult ModuleProviderLoader::findModuleProvi return result; } -QVariantMap ModuleProviderLoader::moduleProviderConfig( +QVariantMap ModuleProviderLoader::getModuleProviderConfig( ProductContext &product) { if (product.theModuleProviderConfig) @@ -228,7 +228,7 @@ std::optional<std::vector<QualifiedId>> ModuleProviderLoader::getModuleProviders } QString ModuleProviderLoader::findModuleProviderFile( - const QualifiedId &name, ModuleProviderLookup lookupType) + const QualifiedId &name, ModuleProviderLookup lookupType) { for (const QString &path : m_reader->allSearchPaths()) { QString fullPath = FileInfo::resolvePath(path, QStringLiteral("module-providers")); @@ -260,12 +260,12 @@ QString ModuleProviderLoader::findModuleProviderFile( return {}; } -QStringList ModuleProviderLoader::getProviderSearchPaths( +QStringList ModuleProviderLoader::evaluateModuleProvider( + ProductContext &product, + const CodeLocation &dependsItemLocation, const QualifiedId &name, const QString &providerFile, - ProductContext &product, - const QVariantMap &moduleConfig, - const CodeLocation &location) + const QVariantMap &moduleConfig) { QTemporaryFile dummyItemFile; if (!dummyItemFile.open()) { @@ -296,7 +296,7 @@ QStringList ModuleProviderLoader::getProviderSearchPaths( stream << "}" << endl; stream.flush(); Item * const providerItem = - m_reader->readFile(dummyItemFile.fileName(), location); + m_reader->readFile(dummyItemFile.fileName(), dependsItemLocation); if (providerItem->type() != ItemType::ModuleProvider) { throw ErrorInfo(Tr::tr("File '%1' declares an item of type '%2', " "but '%3' was expected.") diff --git a/src/lib/corelib/language/moduleproviderloader.h b/src/lib/corelib/language/moduleproviderloader.h index b0571a548..ce1ec7f0a 100644 --- a/src/lib/corelib/language/moduleproviderloader.h +++ b/src/lib/corelib/language/moduleproviderloader.h @@ -93,29 +93,30 @@ public: m_parameters = std::move(parameters); } - ModuleProviderResult executeModuleProvider( + const Set<QString> &tempQbsFiles() const { return m_tempQbsFiles; } + + ModuleProviderResult executeModuleProviders( ProductContext &productContext, const CodeLocation &dependsItemLocation, const QualifiedId &moduleName, FallbackMode fallbackMode); - ModuleProviderResult findModuleProvider( - const std::vector<Provider> &providers, - ProductContext &product, - const CodeLocation &dependsItemLocation); - QVariantMap moduleProviderConfig(ProductContext &product); - const Set<QString> &tempQbsFiles() const { return m_tempQbsFiles; } +private: + ModuleProviderResult executeModuleProvidersHelper( + ProductContext &product, + const CodeLocation &dependsItemLocation, + const std::vector<Provider> &providers); + QVariantMap getModuleProviderConfig(ProductContext &product); std::optional<std::vector<QualifiedId>> getModuleProviders(Item *item); -private: QString findModuleProviderFile(const QualifiedId &name, ModuleProviderLookup lookupType); - QStringList getProviderSearchPaths( + QStringList evaluateModuleProvider( + ProductContext &product, + const CodeLocation &location, const QualifiedId &name, const QString &providerFile, - ProductContext &product, - const QVariantMap &moduleConfig, - const CodeLocation &location); + const QVariantMap &moduleConfig); private: ItemReader *const m_reader{nullptr}; |