summaryrefslogtreecommitdiff
path: root/src/lib/buildgraph/rulesapplicator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/buildgraph/rulesapplicator.cpp')
-rw-r--r--src/lib/buildgraph/rulesapplicator.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/lib/buildgraph/rulesapplicator.cpp b/src/lib/buildgraph/rulesapplicator.cpp
index eb4856a89..374aa67e5 100644
--- a/src/lib/buildgraph/rulesapplicator.cpp
+++ b/src/lib/buildgraph/rulesapplicator.cpp
@@ -34,6 +34,7 @@
#include "buildproject.h"
#include "rulesevaluationcontext.h"
#include "transformer.h"
+#include <language/artifactproperties.h>
#include <language/language.h>
#include <language/scriptengine.h>
#include <logging/logger.h>
@@ -267,6 +268,15 @@ Artifact *RulesApplicator::createOutputArtifact(const RuleArtifactConstPtr &rule
else
outputArtifact->properties= (*inputArtifacts.constBegin())->properties;
+ for (int i = 0; i < m_buildProduct->rProduct->artifactProperties.count(); ++i) {
+ const ArtifactPropertiesConstPtr &props = m_buildProduct->rProduct->artifactProperties.at(i);
+ QSet<QString> filter = props->fileTagsFilter().toSet();
+ if (!filter.intersect(outputArtifact->fileTags).isEmpty()) {
+ outputArtifact->properties = props->propertyMap();
+ break;
+ }
+ }
+
foreach (Artifact *inputArtifact, inputArtifacts) {
Q_ASSERT(outputArtifact != inputArtifact);
loggedConnect(outputArtifact, inputArtifact);