ProParser: Do not open a write channel for processes invoked for system()

If a process invoked via one of qmake's system() functions attempts to
read from stdin, it will currently hang Qt Creator. Prevent that.

Task-number: QTCREATORBUG-25194
Change-Id: I9c6411bcb2fb8e0d2705252cc6d27900472906a1
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
Christian Kandeler
2021-01-04 16:54:33 +01:00
parent 4ce6058e0b
commit 5b4e652b26

View File

@@ -458,6 +458,7 @@ QMakeEvaluator::writeFile(const QString &ctx, const QString &fn, QIODevice::Open
void QMakeEvaluator::runProcess(QProcess *proc, const QString &command) const void QMakeEvaluator::runProcess(QProcess *proc, const QString &command) const
{ {
proc->setWorkingDirectory(currentDirectory()); proc->setWorkingDirectory(currentDirectory());
proc->setStandardInputFile(QProcess::nullDevice());
# ifdef PROEVALUATOR_SETENV # ifdef PROEVALUATOR_SETENV
if (!m_option->environment.isEmpty()) { if (!m_option->environment.isEmpty()) {
QProcessEnvironment env = m_option->environment; QProcessEnvironment env = m_option->environment;