diff options
Diffstat (limited to 'src/lib/buildgraph/productbuilddata.h')
| -rw-r--r-- | src/lib/buildgraph/productbuilddata.h | 29 |
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 |
