summaryrefslogtreecommitdiff
path: root/src/lib/buildgraph/rulesapplicator.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/buildgraph/rulesapplicator.h')
-rw-r--r--src/lib/buildgraph/rulesapplicator.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/lib/buildgraph/rulesapplicator.h b/src/lib/buildgraph/rulesapplicator.h
index 622391c5b..6a2e4436a 100644
--- a/src/lib/buildgraph/rulesapplicator.h
+++ b/src/lib/buildgraph/rulesapplicator.h
@@ -29,22 +29,24 @@
#ifndef QBS_RULESAPPLICATOR_H
#define QBS_RULESAPPLICATOR_H
-#include "artifactlist.h"
+#include "artifactset.h"
#include "forward_decls.h"
#include <language/filetags.h>
#include <language/forward_decls.h>
#include <language/scriptpropertyobserver.h>
#include <logging/logger.h>
-#include <QMap>
+#include <QHash>
#include <QScriptValue>
#include <QString>
+#include <QVector>
namespace qbs {
namespace Internal {
+class BuildGraphNode;
class ScriptEngine;
-typedef QMap<FileTag, ArtifactList> ArtifactsPerFileTagMap;
+typedef QHash<FileTag, ArtifactSet> ArtifactsPerFileTagMap;
class RulesApplicator : private ScriptPropertyObserver
{
@@ -52,13 +54,14 @@ public:
RulesApplicator(const ResolvedProductPtr &product, ArtifactsPerFileTagMap &artifactsPerFileTag,
const Logger &logger);
void applyAllRules();
+ QVector<BuildGraphNode *> applyRuleInEvaluationContext(const RuleConstPtr &rule);
void applyRule(const RuleConstPtr &rule);
private:
- void doApply(const ArtifactList &inputArtifacts, QScriptValue &prepareScriptContext);
+ void doApply(const ArtifactSet &inputArtifacts, QScriptValue &prepareScriptContext);
void setupScriptEngineForArtifact(Artifact *artifact);
Artifact *createOutputArtifact(const RuleArtifactConstPtr &ruleArtifact,
- const ArtifactList &inputArtifacts);
+ const ArtifactSet &inputArtifacts);
QString resolveOutPath(const QString &path) const;
RulesEvaluationContextPtr evalContext() const;
ScriptEngine *engine() const;
@@ -67,6 +70,7 @@ private:
const ResolvedProductPtr m_product;
ArtifactsPerFileTagMap &m_artifactsPerFileTag;
+ QVector<BuildGraphNode *> m_createdArtifacts;
RuleConstPtr m_rule;
TransformerPtr m_transformer;