diff options
| author | Joerg Bornemann <joerg.bornemann@digia.com> | 2013-11-22 12:40:15 +0100 |
|---|---|---|
| committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2013-11-22 12:40:15 +0100 |
| commit | d888dc98db2d3dd92f2decd1193cd15628ed1816 (patch) | |
| tree | 87479cd355d36f434eada69c4feb39667befaec3 /src/lib/buildgraph | |
| parent | 146a9377c2cfb1ba26f6243509a4db40342be927 (diff) | |
| parent | e81fda6169fae5b4949e7f4ee75d1528b016d5e7 (diff) | |
| download | qbs-d888dc98db2d3dd92f2decd1193cd15628ed1816.tar.gz | |
Merge remote-tracking branch 'origin/1.1'
Conflicts:
src/lib/language/moduleloader.cpp
src/lib/language/tst_language.cpp
src/lib/language/tst_language.h
Change-Id: Iaaf4e015a234cdd9f51630ad218daec1b83b2a84
Diffstat (limited to 'src/lib/buildgraph')
| -rw-r--r-- | src/lib/buildgraph/buildgraphloader.cpp | 24 | ||||
| -rw-r--r-- | src/lib/buildgraph/buildgraphloader.h | 2 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/lib/buildgraph/buildgraphloader.cpp b/src/lib/buildgraph/buildgraphloader.cpp index 7ebca9703..94ce07f57 100644 --- a/src/lib/buildgraph/buildgraphloader.cpp +++ b/src/lib/buildgraph/buildgraphloader.cpp @@ -37,6 +37,7 @@ #include "projectbuilddata.h" #include "rulesevaluationcontext.h" #include "transformer.h" +#include <language/artifactproperties.h> #include <language/language.h> #include <language/loader.h> #include <logging/translator.h> @@ -430,6 +431,23 @@ bool BuildGraphLoader::checkProductForChanges(const ResolvedProductPtr &restored // TODO: Check for more stuff. } +bool BuildGraphLoader::checkProductForInstallInfoChanges(const ResolvedProductPtr &restoredProduct, + const ResolvedProductPtr &newlyResolvedProduct) +{ + // These are not requested from rules at build time, but we still need to take + // them into account. + const QStringList specialProperties = QStringList() << QLatin1String("install") + << QLatin1String("installDir") << QLatin1String("installPrefix"); + foreach (const QString &key, specialProperties) { + if (restoredProduct->properties->qbsPropertyValue(key) + != newlyResolvedProduct->properties->qbsPropertyValue(key)) { + m_logger.qbsDebug() << "Product property 'qbs." << key << "' changed."; + return true; + } + } + return false; +} + bool BuildGraphLoader::checkForPropertyChanges(const ResolvedProductPtr &restoredProduct, const ResolvedProductPtr &newlyResolvedProduct) { @@ -437,6 +455,12 @@ bool BuildGraphLoader::checkForPropertyChanges(const ResolvedProductPtr &restore "product '" << restoredProduct->name << "'."; if (!restoredProduct->buildData) return false; + if (checkProductForInstallInfoChanges(restoredProduct, newlyResolvedProduct)) + return true; + if (!artifactPropertyListsAreEqual(restoredProduct->artifactProperties, + newlyResolvedProduct->artifactProperties)) { + return true; + } QSet<TransformerConstPtr> seenTransformers; foreach (Artifact * const artifact, restoredProduct->buildData->artifacts) { const TransformerConstPtr transformer = artifact->transformer; diff --git a/src/lib/buildgraph/buildgraphloader.h b/src/lib/buildgraph/buildgraphloader.h index 4806daad3..fed032f72 100644 --- a/src/lib/buildgraph/buildgraphloader.h +++ b/src/lib/buildgraph/buildgraphloader.h @@ -83,6 +83,8 @@ private: QList<ResolvedProductPtr> &productsWithChangedFiles); bool checkProductForChanges(const ResolvedProductPtr &restoredProduct, const ResolvedProductPtr &newlyResolvedProduct); + bool checkProductForInstallInfoChanges(const ResolvedProductPtr &restoredProduct, + const ResolvedProductPtr &newlyResolvedProduct); bool checkForPropertyChanges(const ResolvedProductPtr &restoredProduct, const ResolvedProductPtr &newlyResolvedProduct); void onProductRemoved(const ResolvedProductPtr &product, ProjectBuildData *projectBuildData, |
