aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-07-12 10:16:03 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2018-07-12 10:16:03 +0200
commitc45cd4a943dfbbc9c54f65ec2ab5250e9b5ba1cb (patch)
tree88031e0928c9b4b0bf01d72a89c90f3e1406c593 /src
parentadcadd2a06b906685bf0a2687dd5ab902f3b0ebf (diff)
parent2440b19b288096e1601674de2ac15c560af469cd (diff)
Merge 1.12 into master
Diffstat (limited to 'src')
-rw-r--r--src/lib/corelib/api/project.cpp5
-rw-r--r--src/lib/corelib/buildgraph/executor.cpp4
-rw-r--r--src/lib/corelib/buildgraph/rulenode.cpp2
-rw-r--r--src/lib/corelib/buildgraph/rulesapplicator.cpp2
-rw-r--r--src/lib/corelib/language/language.cpp3
-rw-r--r--src/lib/corelib/tools/vsenvironmentdetector.cpp3
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) {