summaryrefslogtreecommitdiff
path: root/src/lib/buildgraph/productbuilddata.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/buildgraph/productbuilddata.h')
-rw-r--r--src/lib/buildgraph/productbuilddata.h29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/lib/buildgraph/productbuilddata.h b/src/lib/buildgraph/productbuilddata.h
index 53d68ad0d..533f9ebaa 100644
--- a/src/lib/buildgraph/productbuilddata.h
+++ b/src/lib/buildgraph/productbuilddata.h
@@ -29,9 +29,10 @@
#ifndef QBS_PRODUCTBUILDDATA_H
#define QBS_PRODUCTBUILDDATA_H
-#include "artifactlist.h"
+#include "artifactset.h"
+#include "nodeset.h"
+#include <language/filetags.h>
#include <language/forward_decls.h>
-
#include <tools/persistentobject.h>
#include <QList>
@@ -39,6 +40,7 @@
namespace qbs {
namespace Internal {
+
class Logger;
class ProductBuildData : public PersistentObject
@@ -46,15 +48,34 @@ class ProductBuildData : public PersistentObject
public:
~ProductBuildData();
- QSet<Artifact *> targetArtifacts;
- ArtifactList artifacts;
+ ArtifactSet targetArtifacts;
+ NodeSet nodes;
+ NodeSet roots;
QList<RuleConstPtr> topSortedRules;
// Do not store, initialized in executor. Higher prioritized artifacts are built first.
unsigned int buildPriority;
+ void registerAddedFileTag(const FileTag &fileTag, Artifact *artifact);
+ void registerAddedArtifact(Artifact *artifact);
+ void registerRemovedFileTag(const FileTag &fileTag, Artifact *artifact);
+ void registerRemovedArtifact(Artifact *artifact);
+ const ArtifactSet addedArtifactsByFileTag(const FileTag &tag) const;
+ const ArtifactSet removedArtifactsByFileTag(const FileTag &tag) const;
+
+ // ### HACK
+ QHash<FileTag, ArtifactSet> addedArtifacts() const { return m_addedArtifactsByFileTag; }
+ void setAddedArtifacts(const QHash<FileTag, ArtifactSet> &asfdjkl) { m_addedArtifactsByFileTag = asfdjkl; }
+ // ### END OF HACK
+
+
void load(PersistentPool &pool);
void store(PersistentPool &pool) const;
+
+private:
+ typedef QHash<FileTag, ArtifactSet> ArtifactSetByFileTag;
+ ArtifactSetByFileTag m_addedArtifactsByFileTag;
+ ArtifactSetByFileTag m_removedArtifactsByFileTag;
};
} // namespace Internal