diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2018-07-12 10:16:03 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2018-07-12 10:16:03 +0200 |
commit | c45cd4a943dfbbc9c54f65ec2ab5250e9b5ba1cb (patch) | |
tree | 88031e0928c9b4b0bf01d72a89c90f3e1406c593 /src | |
parent | adcadd2a06b906685bf0a2687dd5ab902f3b0ebf (diff) | |
parent | 2440b19b288096e1601674de2ac15c560af469cd (diff) |
Merge 1.12 into master
Change-Id: I056a96c062881c2a07ec15b1803efa9c9aa1a02a
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/corelib/api/project.cpp | 5 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/executor.cpp | 4 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/rulenode.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/rulesapplicator.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/language/language.cpp | 3 | ||||
-rw-r--r-- | src/lib/corelib/tools/vsenvironmentdetector.cpp | 3 |
6 files changed, 16 insertions, 3 deletions
diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp index bad18cab9..5bbfb31c7 100644 --- a/src/lib/corelib/api/project.cpp +++ b/src/lib/corelib/api/project.cpp @@ -806,6 +806,11 @@ ProjectTransformerData ProjectPrivate::transformerData() tData.d->outputs << createArtifactData(a, product, targetArtifacts); for (const Artifact * const child : filterByType<Artifact>(a->children)) allInputs << child; + for (Artifact * const a + : RulesApplicator::collectAuxiliaryInputs(t->rule.get(), product.get())) { + if (a->artifactType == Artifact::Generated) + tData.d->inputs << createArtifactData(a, product, targetArtifacts); + } } for (const Artifact * const input : allInputs) tData.d->inputs << createArtifactData(input, product, targetArtifacts); diff --git a/src/lib/corelib/buildgraph/executor.cpp b/src/lib/corelib/buildgraph/executor.cpp index 13b21d40e..1012a1d4e 100644 --- a/src/lib/corelib/buildgraph/executor.cpp +++ b/src/lib/corelib/buildgraph/executor.cpp @@ -794,7 +794,9 @@ void Executor::rescueOldBuildData(Artifact *artifact, bool *childrenAdded = 0) << "not in the project's list of dependencies anymore."; break; } - artifact->fileDependencies.insert(static_cast<FileDependency *>(*depIt)); + FileDependency * const dep = static_cast<FileDependency *>(*depIt); + dep->clearTimestamp(); + artifact->fileDependencies.insert(dep); } if (canRescue) { diff --git a/src/lib/corelib/buildgraph/rulenode.cpp b/src/lib/corelib/buildgraph/rulenode.cpp index 359054704..b3fc56031 100644 --- a/src/lib/corelib/buildgraph/rulenode.cpp +++ b/src/lib/corelib/buildgraph/rulenode.cpp @@ -217,6 +217,8 @@ ArtifactSet RuleNode::currentInputArtifacts() const // This can e.g. happen for the ["cpp", "hpp"] -> ["hpp", "cpp", "unmocable"] rule. continue; } + if (artifact->fileTags().intersects(m_rule->excludedInputs)) + continue; s += artifact; } } diff --git a/src/lib/corelib/buildgraph/rulesapplicator.cpp b/src/lib/corelib/buildgraph/rulesapplicator.cpp index d87d690a9..5962eb346 100644 --- a/src/lib/corelib/buildgraph/rulesapplicator.cpp +++ b/src/lib/corelib/buildgraph/rulesapplicator.cpp @@ -176,6 +176,8 @@ static QStringList toStringList(const ArtifactSet &artifacts) void RulesApplicator::doApply(const ArtifactSet &inputArtifacts, QScriptValue &prepareScriptContext) { evalContext()->checkForCancelation(); + for (const Artifact *inputArtifact : inputArtifacts) + QBS_CHECK(!inputArtifact->fileTags().intersects(m_rule->excludedInputs)); qCDebug(lcBuildGraph) << "apply rule" << m_rule->toString() << toStringList(inputArtifacts).join(QLatin1String(",\n ")); diff --git a/src/lib/corelib/language/language.cpp b/src/lib/corelib/language/language.cpp index 4e83c4fca..66854a13e 100644 --- a/src/lib/corelib/language/language.cpp +++ b/src/lib/corelib/language/language.cpp @@ -281,7 +281,8 @@ QString Rule::toString() const bool Rule::acceptsAsInput(Artifact *artifact) const { - return artifact->fileTags().intersects(inputs); + return artifact->fileTags().intersects(inputs) + && !artifact->fileTags().intersects(excludedInputs); } FileTags Rule::staticOutputFileTags() const diff --git a/src/lib/corelib/tools/vsenvironmentdetector.cpp b/src/lib/corelib/tools/vsenvironmentdetector.cpp index 9beb534e1..32e6d3497 100644 --- a/src/lib/corelib/tools/vsenvironmentdetector.cpp +++ b/src/lib/corelib/tools/vsenvironmentdetector.cpp @@ -217,7 +217,8 @@ void VsEnvironmentDetector::writeBatchFile(QIODevice *device, const QString &vcv const std::vector<MSVC *> &msvcs) const { const QStringList varnames = QStringList() << StringConstants::pathEnvVar() - << QLatin1String("INCLUDE") << QLatin1String("LIB"); + << QLatin1String("INCLUDE") << QLatin1String("LIB") << QLatin1String("WindowsSdkDir") + << QLatin1String("WindowsSDKVersion"); QTextStream s(device); s << "@echo off" << endl; for (const MSVC *msvc : msvcs) { |