diff options
Diffstat (limited to 'src/lib/buildgraph/executor.h')
-rw-r--r-- | src/lib/buildgraph/executor.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/lib/buildgraph/executor.h b/src/lib/buildgraph/executor.h index 1a3b44702..00f2e0124 100644 --- a/src/lib/buildgraph/executor.h +++ b/src/lib/buildgraph/executor.h @@ -40,6 +40,7 @@ #include <tools/error.h> #include <QObject> +#include <queue> namespace qbs { class ProcessResult; @@ -83,6 +84,13 @@ private slots: private: enum ExecutorState { ExecutorIdle, ExecutorRunning, ExecutorCanceling }; + struct ComparePriority + { + bool operator() (const Artifact *x, const Artifact *y) const; + }; + + typedef std::priority_queue<Artifact *, std::vector<Artifact *>, ComparePriority> Leaves; + void doBuild(); void prepareAllArtifacts(bool *sourceFilesChanged); void prepareReachableArtifacts(const Artifact::BuildState buildState); @@ -109,7 +117,7 @@ private: void retrieveSourceFileTimestamp(Artifact *artifact) const; FileTime recursiveFileTime(const QString &filePath) const; void insertLeavesAfterAddingDependencies_recurse(Artifact *const artifact, - QSet<Artifact *> *seenArtifacts, QList<Artifact *> *leaves) const; + QSet<Artifact *> *seenArtifacts, Leaves *leaves) const; QString configString() const; RulesEvaluationContextPtr m_evalContext; @@ -122,7 +130,7 @@ private: TopLevelProjectPtr m_project; QList<ResolvedProductPtr> m_productsToBuild; QList<Artifact *> m_roots; - QList<Artifact *> m_leaves; + Leaves m_leaves; ScanResultCache m_scanResultCache; InputArtifactScannerContext *m_inputArtifactScanContext; AutoMoc *m_autoMoc; |