aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/extracompiler.h
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2016-03-11 15:18:20 +0200
committerOrgad Shaneh <orgads@gmail.com>2016-03-15 11:52:49 +0000
commitba517fcfab19cf86af576845d305c9e4865c5672 (patch)
tree5910ecad2da1a7467b1fdff980e0eccc133ebda0 /src/plugins/projectexplorer/extracompiler.h
parent1c483b95a61e1abe40ed3d7e626ccdbd21e635de (diff)
ExtraCompiler: Remove stored targets list
Itereate over the hash keys instead. Change-Id: Ib14bef708b74ed1938bcb985b3a5091aca704391 Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com> Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Diffstat (limited to 'src/plugins/projectexplorer/extracompiler.h')
-rw-r--r--src/plugins/projectexplorer/extracompiler.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/plugins/projectexplorer/extracompiler.h b/src/plugins/projectexplorer/extracompiler.h
index 6f2ec8bc63..024c9b8758 100644
--- a/src/plugins/projectexplorer/extracompiler.h
+++ b/src/plugins/projectexplorer/extracompiler.h
@@ -35,14 +35,19 @@
#include <QByteArray>
#include <QFuture>
+#include <QHash>
#include <QList>
+#include <functional>
+
QT_FORWARD_DECLARE_CLASS(QProcess);
QT_FORWARD_DECLARE_CLASS(QThreadPool);
namespace ProjectExplorer {
class ExtraCompilerPrivate;
+using FileNameToContentsHash = QHash<Utils::FileName, QByteArray>;
+
class PROJECTEXPLORER_EXPORT ExtraCompiler : public QObject
{
Q_OBJECT
@@ -61,6 +66,7 @@ public:
QByteArray content(const Utils::FileName &file) const;
Utils::FileNameList targets() const;
+ void forEachTarget(std::function<void(const Utils::FileName &)> func);
void setCompileTime(const QDateTime &time);
QDateTime compileTime() const;
@@ -115,19 +121,19 @@ protected:
virtual void handleProcessError(QProcess *process) { Q_UNUSED(process); }
virtual void handleProcessStarted(QProcess *process, const QByteArray &sourceContents)
{ Q_UNUSED(process); Q_UNUSED(sourceContents); }
- virtual QList<QByteArray> handleProcessFinished(QProcess *process) = 0;
+ virtual FileNameToContentsHash handleProcessFinished(QProcess *process) = 0;
virtual QList<Task> parseIssues(const QByteArray &stdErr);
private:
using ContentProvider = std::function<QByteArray()>;
void runImpl(const ContentProvider &sourceContents);
- QList<QByteArray> runInThread(const Utils::FileName &cmd, const Utils::FileName &workDir,
- const QStringList &args, const ContentProvider &provider,
- const Utils::Environment &env);
+ FileNameToContentsHash runInThread(const Utils::FileName &cmd, const Utils::FileName &workDir,
+ const QStringList &args, const ContentProvider &provider,
+ const Utils::Environment &env);
void cleanUp();
- QFutureWatcher<QList<QByteArray>> *m_watcher = nullptr;
+ QFutureWatcher<FileNameToContentsHash> *m_watcher = nullptr;
};
class PROJECTEXPLORER_EXPORT ExtraCompilerFactory : public QObject