diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2016-03-11 15:18:20 +0200 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2016-03-15 11:52:49 +0000 |
commit | ba517fcfab19cf86af576845d305c9e4865c5672 (patch) | |
tree | 5910ecad2da1a7467b1fdff980e0eccc133ebda0 /src/plugins/qtsupport | |
parent | 1c483b95a61e1abe40ed3d7e626ccdbd21e635de (diff) | |
download | qt-creator-ba517fcfab19cf86af576845d305c9e4865c5672.tar.gz |
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/qtsupport')
-rw-r--r-- | src/plugins/qtsupport/qscxmlcgenerator.cpp | 28 | ||||
-rw-r--r-- | src/plugins/qtsupport/qscxmlcgenerator.h | 4 | ||||
-rw-r--r-- | src/plugins/qtsupport/uicgenerator.cpp | 17 | ||||
-rw-r--r-- | src/plugins/qtsupport/uicgenerator.h | 2 |
4 files changed, 31 insertions, 20 deletions
diff --git a/src/plugins/qtsupport/qscxmlcgenerator.cpp b/src/plugins/qtsupport/qscxmlcgenerator.cpp index 2693130253..423bfc763b 100644 --- a/src/plugins/qtsupport/qscxmlcgenerator.cpp +++ b/src/plugins/qtsupport/qscxmlcgenerator.cpp @@ -45,7 +45,11 @@ QScxmlcGenerator::QScxmlcGenerator(const Project *project, const Utils::FileName &source, const Utils::FileNameList &targets, QObject *parent) : ProcessExtraCompiler(project, source, targets, parent) -{ } +{ + QTC_ASSERT(targets.count() == 2, return); + m_header = m_tmpdir.path() + QLatin1Char('/') + targets[0].fileName(); + m_impl = m_tmpdir.path() + QLatin1Char('/') + targets[1].fileName(); +} QList<Task> QScxmlcGenerator::parseIssues(const QByteArray &processStderr) { @@ -84,14 +88,10 @@ Utils::FileName QScxmlcGenerator::command() const QStringList QScxmlcGenerator::arguments() const { - QTC_ASSERT(targets().count() == 2, return QStringList()); + QTC_ASSERT(!m_header.isEmpty(), return QStringList()); - const Utils::FileName fn = tmpFile(); - const QString header = m_tmpdir.path() + QLatin1Char('/') + targets()[0].fileName(); - const QString impl = m_tmpdir.path() + QLatin1Char('/') + targets()[1].fileName(); - - return QStringList({ QLatin1String("--header"), header, QLatin1String("--impl"), impl, - fn.fileName() }); + return QStringList({ QLatin1String("--header"), m_header, QLatin1String("--impl"), m_impl, + tmpFile().fileName() }); } Utils::FileName QScxmlcGenerator::workingDirectory() const @@ -111,19 +111,19 @@ bool QScxmlcGenerator::prepareToRun(const QByteArray &sourceContents) return true; } -QList<QByteArray> QScxmlcGenerator::handleProcessFinished(QProcess *process) +FileNameToContentsHash QScxmlcGenerator::handleProcessFinished(QProcess *process) { Q_UNUSED(process); const Utils::FileName wd = workingDirectory(); - QList<QByteArray> result; - foreach (const Utils::FileName &target, targets()) { + FileNameToContentsHash result; + forEachTarget([&](const Utils::FileName &target) { Utils::FileName file = wd; file.appendPath(target.fileName()); QFile generated(file.toString()); if (!generated.open(QIODevice::ReadOnly)) - continue; - result << generated.readAll(); - } + return; + result[target] = generated.readAll(); + }); return result; } diff --git a/src/plugins/qtsupport/qscxmlcgenerator.h b/src/plugins/qtsupport/qscxmlcgenerator.h index 1c52f0410d..a28045cc88 100644 --- a/src/plugins/qtsupport/qscxmlcgenerator.h +++ b/src/plugins/qtsupport/qscxmlcgenerator.h @@ -47,11 +47,13 @@ protected: private: Utils::FileName tmpFile() const; - QList<QByteArray> handleProcessFinished(QProcess *process) override; + ProjectExplorer::FileNameToContentsHash handleProcessFinished(QProcess *process) override; bool prepareToRun(const QByteArray &sourceContents) override; QList<ProjectExplorer::Task> parseIssues(const QByteArray &processStderr) override; QTemporaryDir m_tmpdir; + QString m_header; + QString m_impl; }; class QScxmlcGeneratorFactory : public ProjectExplorer::ExtraCompilerFactory diff --git a/src/plugins/qtsupport/uicgenerator.cpp b/src/plugins/qtsupport/uicgenerator.cpp index 2fe70cc1c1..ff8c93e1bb 100644 --- a/src/plugins/qtsupport/uicgenerator.cpp +++ b/src/plugins/qtsupport/uicgenerator.cpp @@ -31,6 +31,8 @@ #include <projectexplorer/target.h> #include <projectexplorer/buildconfiguration.h> +#include <utils/qtcassert.h> + #include <QFileInfo> #include <QDir> #include <QLoggingCategory> @@ -44,7 +46,9 @@ namespace QtSupport { UicGenerator::UicGenerator(const Project *project, const Utils::FileName &source, const Utils::FileNameList &targets, QObject *parent) : ProcessExtraCompiler(project, source, targets, parent) -{ } +{ + QTC_ASSERT(targets.count() == 1, return); +} Utils::FileName UicGenerator::command() const { @@ -67,14 +71,19 @@ void UicGenerator::handleProcessStarted(QProcess *process, const QByteArray &sou process->closeWriteChannel(); } -QList<QByteArray> UicGenerator::handleProcessFinished(QProcess *process) +FileNameToContentsHash UicGenerator::handleProcessFinished(QProcess *process) { + FileNameToContentsHash result; if (process->exitStatus() != QProcess::NormalExit && process->exitCode() != 0) - return QList<QByteArray>(); + return result; + const Utils::FileNameList targetList = targets(); + if (targetList.size() != 1) + return result; // As far as I can discover in the UIC sources, it writes out local 8-bit encoding. The // conversion below is to normalize both the encoding, and the line terminators. - return { QString::fromLocal8Bit(process->readAllStandardOutput()).toUtf8() }; + result[targetList.first()] = QString::fromLocal8Bit(process->readAllStandardOutput()).toUtf8(); + return result; } FileType UicGeneratorFactory::sourceType() const diff --git a/src/plugins/qtsupport/uicgenerator.h b/src/plugins/qtsupport/uicgenerator.h index 21fd09e12b..c7ce3d58c4 100644 --- a/src/plugins/qtsupport/uicgenerator.h +++ b/src/plugins/qtsupport/uicgenerator.h @@ -43,7 +43,7 @@ public: protected: Utils::FileName command() const override; void handleProcessStarted(QProcess *process, const QByteArray &sourceContents) override; - QList<QByteArray> handleProcessFinished(QProcess *process) override; + ProjectExplorer::FileNameToContentsHash handleProcessFinished(QProcess *process) override; }; class UicGeneratorFactory : public ProjectExplorer::ExtraCompilerFactory |