diff options
Diffstat (limited to 'src/lib/buildgraph/buildgraphloader.cpp')
| -rw-r--r-- | src/lib/buildgraph/buildgraphloader.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/lib/buildgraph/buildgraphloader.cpp b/src/lib/buildgraph/buildgraphloader.cpp index 4d62e55ae..ab3360574 100644 --- a/src/lib/buildgraph/buildgraphloader.cpp +++ b/src/lib/buildgraph/buildgraphloader.cpp @@ -179,7 +179,8 @@ void BuildGraphLoader::trackProjectChanges(const SetupProjectParameters ¶met // anew. bool allProductsPotentiallyChanged = false; if (hasBuildSystemFileChanged(buildSystemFiles, buildGraphTimeStamp) - || hasEnvironmentChanged(restoredProject)) { + || hasEnvironmentChanged(restoredProject) + || hasFileExistsResultChanged(restoredProject)) { reResolvingNecessary = true; allProductsPotentiallyChanged = true; } @@ -285,6 +286,20 @@ bool BuildGraphLoader::hasEnvironmentChanged(const TopLevelProjectConstPtr &rest return false; } +bool BuildGraphLoader::hasFileExistsResultChanged(const TopLevelProjectConstPtr &restoredProject) const +{ + for (QHash<QString, bool>::ConstIterator it = restoredProject->fileExistsResults.constBegin(); + it != restoredProject->fileExistsResults.constEnd(); ++it) { + if (FileInfo(it.key()).exists() != it.value()) { + m_logger.qbsDebug() << "Existence check for file '" << it.key() + << " 'changed, must re-resolve project."; + return true; + } + } + + return false; +} + bool BuildGraphLoader::hasProductFileChanged(const QList<ResolvedProductPtr> &restoredProducts, const FileTime &referenceTime, QSet<QString> &remainingBuildSystemFiles, QList<ResolvedProductPtr> &changedProducts) |
