diff options
Diffstat (limited to 'src/lib/corelib/language/moduleloader.h')
-rw-r--r-- | src/lib/corelib/language/moduleloader.h | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/lib/corelib/language/moduleloader.h b/src/lib/corelib/language/moduleloader.h index 333c2f7dd..3dafd42de 100644 --- a/src/lib/corelib/language/moduleloader.h +++ b/src/lib/corelib/language/moduleloader.h @@ -45,6 +45,7 @@ #include "item.h" #include "itempool.h" #include <logging/logger.h> +#include <tools/filetime.h> #include <tools/set.h> #include <tools/setupprojectparameters.h> #include <tools/version.h> @@ -77,7 +78,7 @@ using ModulePropertiesPerGroup = std::unordered_map<const Item *, QualifiedIdSet struct ModuleLoaderResult { ModuleLoaderResult() - : itemPool(new ItemPool), root(0) + : itemPool(new ItemPool), root(nullptr) {} struct ProductInfo @@ -125,6 +126,7 @@ public: void setSearchPaths(const QStringList &searchPaths); void setOldProjectProbes(const QList<ProbeConstPtr> &oldProbes); void setOldProductProbes(const QHash<QString, QList<ProbeConstPtr>> &oldProbes); + void setLastResolveTime(const FileTime &time) { m_lastResolveTime = time; } void setStoredProfiles(const QVariantMap &profiles); Evaluator *evaluator() const { return m_evaluator; } @@ -145,7 +147,7 @@ private: { public: ContextBase() - : item(0), scope(0) + : item(nullptr), scope(nullptr) {} Item *item; @@ -283,9 +285,9 @@ private: QVariantMap *defaultParameters); Item *searchAndLoadModuleFile(ProductContext *productContext, const CodeLocation &dependsItemLocation, const QualifiedId &moduleName, - bool isRequired); + bool isRequired, Item *moduleInstance); Item *loadModuleFile(ProductContext *productContext, const QString &fullModuleName, - bool isBaseModule, const QString &filePath, bool *triedToLoad); + bool isBaseModule, const QString &filePath, bool *triedToLoad, Item *moduleInstance); Item::Module loadBaseModule(ProductContext *productContext, Item *item); void setupBaseModulePrototype(Item *prototype); void instantiateModule(ProductContext *productContext, Item *exportingProductItem, @@ -296,7 +298,7 @@ private: void resolveProbes(ProductContext *productContext, Item *item); void resolveProbe(ProductContext *productContext, Item *parent, Item *probe); void checkCancelation() const; - bool checkItemCondition(Item *item); + bool checkItemCondition(Item *item, Item *itemToDisable = nullptr); QStringList readExtraSearchPaths(Item *item, bool *wasSet = 0); void copyProperties(const Item *sourceProject, Item *targetProject); Item *wrapInProjectIfNecessary(Item *item); @@ -309,8 +311,9 @@ private: void addTransitiveDependencies(ProductContext *ctx); Item *createNonPresentModule(const QString &name, const QString &reason, Item *module); void copyGroupsFromModuleToProduct(const ProductContext &productContext, - const Item *modulePrototype); + const Item::Module &module, const Item *modulePrototype); void copyGroupsFromModulesToProduct(const ProductContext &productContext); + void markModuleTargetGroups(Item *group, const Item::Module &module); bool checkExportItemCondition(Item *exportItem, const ProductContext &productContext); ProbeConstPtr findOldProjectProbe(const QString &globalId, bool condition, const QVariantMap &initialProperties, @@ -321,6 +324,11 @@ private: ProbeConstPtr findCurrentProbe(const CodeLocation &location, bool condition, const QVariantMap &initialProperties) const; + enum class CompareScript { No, Yes }; + bool probeMatches(const ProbeConstPtr &probe, bool condition, + const QVariantMap &initialProperties, const QString &configureScript, + CompareScript compareScript) const; + void printProfilingInfo(); void handleProductError(const ErrorInfo &error, ProductContext *productContext); QualifiedIdSet gatherModulePropertiesSetInGroup(const Item *group); @@ -360,6 +368,7 @@ private: QHash<QString, QList<ProbeConstPtr>> m_oldProjectProbes; QHash<QString, QList<ProbeConstPtr>> m_oldProductProbes; + FileTime m_lastResolveTime; QHash<CodeLocation, QList<ProbeConstPtr>> m_currentProbes; QVariantMap m_storedProfiles; QVariantMap m_localProfiles; |