diff options
Diffstat (limited to 'src/lib/buildgraph/rulesapplicator.cpp')
| -rw-r--r-- | src/lib/buildgraph/rulesapplicator.cpp | 10 |
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); |
