Cmake: Fix compile output glitch

Using a dedicated OutputLineParser ensures that we only ever see
complete lines and thus prevents "partially red" lines in the compile
output pane.

Fixes: QTCREATORBUG-24209
Change-Id: I12b3de70b81789afe727b66e366facdcc81f8ab8
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Christian Kandeler
2020-07-30 13:16:43 +02:00
parent 2944b33530
commit 21fbf36a5d
3 changed files with 74 additions and 59 deletions

View File

@@ -73,14 +73,10 @@ signals:
void buildTargetsChanged();
protected:
void processStarted() override;
void processFinished(int exitCode, QProcess::ExitStatus status) override;
bool fromMap(const QVariantMap &map) override;
// For parsing [ 76%]
void stdOutput(const QString &output) override;
private:
void ctor(ProjectExplorer::BuildStepList *bsl);
@@ -98,13 +94,10 @@ private:
QMetaObject::Connection m_runTrigger;
QRegExp m_percentProgress;
QRegExp m_ninjaProgress;
QString m_ninjaProgressString;
QStringList m_buildTargets;
QString m_cmakeArguments;
QString m_toolArguments;
bool m_useNinja = false;
bool m_waiting = false;
};