forked from qt-creator/qt-creator
Utils: Remove CommandLine argument from QtcProcess::run{,Blocking}
Makes run() more similar to what start() looks like. Also add some asserts to make sure run() and related functions are only called on SyncronousProcesses, as these are currently the only ones where this works. Change-Id: Idee6076c3f40a484db5c17f5bb348698cc83d220 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -419,7 +419,8 @@ QString PluginManager::systemInformation()
|
|||||||
CommandLine qtDiag(HostOsInfo::withExecutableSuffix(
|
CommandLine qtDiag(HostOsInfo::withExecutableSuffix(
|
||||||
QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/qtdiag"));
|
QLibraryInfo::location(QLibraryInfo::BinariesPath) + "/qtdiag"));
|
||||||
SynchronousProcess qtDiagProc;
|
SynchronousProcess qtDiagProc;
|
||||||
qtDiagProc.runBlocking(qtDiag);
|
qtDiagProc.setCommand(qtDiag);
|
||||||
|
qtDiagProc.runBlocking();
|
||||||
if (qtDiagProc.result() == QtcProcess::Finished)
|
if (qtDiagProc.result() == QtcProcess::Finished)
|
||||||
result += qtDiagProc.allOutput() + "\n";
|
result += qtDiagProc.allOutput() + "\n";
|
||||||
result += "Plugin information:\n\n";
|
result += "Plugin information:\n\n";
|
||||||
|
|||||||
@@ -46,7 +46,8 @@ QString BuildableHelperLibrary::qtChooserToQmakePath(const QString &path)
|
|||||||
const QString toolDir = QLatin1String("QTTOOLDIR=\"");
|
const QString toolDir = QLatin1String("QTTOOLDIR=\"");
|
||||||
SynchronousProcess proc;
|
SynchronousProcess proc;
|
||||||
proc.setTimeoutS(1);
|
proc.setTimeoutS(1);
|
||||||
proc.runBlocking({path, {"-print-env"}});
|
proc.setCommand({path, {"-print-env"}});
|
||||||
|
proc.runBlocking();
|
||||||
if (proc.result() != QtcProcess::Finished)
|
if (proc.result() != QtcProcess::Finished)
|
||||||
return QString();
|
return QString();
|
||||||
const QString output = proc.stdOut();
|
const QString output = proc.stdOut();
|
||||||
@@ -130,7 +131,8 @@ QString BuildableHelperLibrary::qtVersionForQMake(const QString &qmakePath)
|
|||||||
|
|
||||||
SynchronousProcess qmake;
|
SynchronousProcess qmake;
|
||||||
qmake.setTimeoutS(5);
|
qmake.setTimeoutS(5);
|
||||||
qmake.runBlocking({qmakePath, {"--version"}});
|
qmake.setCommand({qmakePath, {"--version"}});
|
||||||
|
qmake.runBlocking();
|
||||||
if (qmake.result() != QtcProcess::Finished) {
|
if (qmake.result() != QtcProcess::Finished) {
|
||||||
qWarning() << qmake.exitMessage();
|
qWarning() << qmake.exitMessage();
|
||||||
return QString();
|
return QString();
|
||||||
|
|||||||
@@ -151,7 +151,8 @@ QString BinaryVersionToolTipEventFilter::toolVersion(const CommandLine &cmd)
|
|||||||
return QString();
|
return QString();
|
||||||
SynchronousProcess proc;
|
SynchronousProcess proc;
|
||||||
proc.setTimeoutS(1);
|
proc.setTimeoutS(1);
|
||||||
proc.runBlocking(cmd);
|
proc.setCommand(cmd);
|
||||||
|
proc.runBlocking();
|
||||||
if (proc.result() != QtcProcess::Finished)
|
if (proc.result() != QtcProcess::Finished)
|
||||||
return QString();
|
return QString();
|
||||||
return proc.allOutput();
|
return proc.allOutput();
|
||||||
|
|||||||
@@ -131,6 +131,7 @@ public:
|
|||||||
bool m_startFailure = false;
|
bool m_startFailure = false;
|
||||||
bool m_timeOutMessageBoxEnabled = false;
|
bool m_timeOutMessageBoxEnabled = false;
|
||||||
bool m_waitingForUser = false;
|
bool m_waitingForUser = false;
|
||||||
|
bool m_isSynchronousProcess = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
void QtcProcessPrivate::clearForRun()
|
void QtcProcessPrivate::clearForRun()
|
||||||
@@ -718,6 +719,8 @@ void ChannelBuffer::append(const QByteArray &text, bool emitSignals)
|
|||||||
// ----------- SynchronousProcess
|
// ----------- SynchronousProcess
|
||||||
SynchronousProcess::SynchronousProcess()
|
SynchronousProcess::SynchronousProcess()
|
||||||
{
|
{
|
||||||
|
d->m_isSynchronousProcess = true; // Only for QTC_ASSERTs above.
|
||||||
|
|
||||||
d->m_timer.setInterval(1000);
|
d->m_timer.setInterval(1000);
|
||||||
connect(&d->m_timer, &QTimer::timeout, d, &QtcProcessPrivate::slotTimeout);
|
connect(&d->m_timer, &QTimer::timeout, d, &QtcProcessPrivate::slotTimeout);
|
||||||
connect(this, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
|
connect(this, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
|
||||||
@@ -741,6 +744,7 @@ SynchronousProcess::~SynchronousProcess()
|
|||||||
|
|
||||||
void QtcProcess::setTimeoutS(int timeoutS)
|
void QtcProcess::setTimeoutS(int timeoutS)
|
||||||
{
|
{
|
||||||
|
QTC_CHECK(d->m_isSynchronousProcess);
|
||||||
if (timeoutS > 0)
|
if (timeoutS > 0)
|
||||||
d->m_maxHangTimerCount = qMax(2, timeoutS);
|
d->m_maxHangTimerCount = qMax(2, timeoutS);
|
||||||
else
|
else
|
||||||
@@ -755,6 +759,7 @@ void QtcProcess::setCodec(QTextCodec *c)
|
|||||||
|
|
||||||
void QtcProcess::setTimeOutMessageBoxEnabled(bool v)
|
void QtcProcess::setTimeOutMessageBoxEnabled(bool v)
|
||||||
{
|
{
|
||||||
|
QTC_CHECK(d->m_isSynchronousProcess);
|
||||||
d->m_timeOutMessageBoxEnabled = v;
|
d->m_timeOutMessageBoxEnabled = v;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -765,6 +770,7 @@ void QtcProcess::setExitCodeInterpreter(const ExitCodeInterpreter &interpreter)
|
|||||||
|
|
||||||
void QtcProcess::setWriteData(const QByteArray &writeData)
|
void QtcProcess::setWriteData(const QByteArray &writeData)
|
||||||
{
|
{
|
||||||
|
QTC_CHECK(d->m_isSynchronousProcess);
|
||||||
d->m_writeData = writeData;
|
d->m_writeData = writeData;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -775,11 +781,11 @@ static bool isGuiThread()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void QtcProcess::run(const CommandLine &cmd)
|
void QtcProcess::run()
|
||||||
{
|
{
|
||||||
|
QTC_CHECK(d->m_isSynchronousProcess);
|
||||||
// FIXME: Implement properly
|
// FIXME: Implement properly
|
||||||
if (cmd.executable().needsDevice()) {
|
if (d->m_commandLine.executable().needsDevice()) {
|
||||||
setCommand(cmd);
|
|
||||||
|
|
||||||
// writeData ?
|
// writeData ?
|
||||||
start();
|
start();
|
||||||
@@ -793,16 +799,15 @@ void QtcProcess::run(const CommandLine &cmd)
|
|||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
qCDebug(processLog).noquote() << "Starting:" << cmd.toUserOutput();
|
qCDebug(processLog).noquote() << "Starting:" << d->m_commandLine.toUserOutput();
|
||||||
ExecuteOnDestruction logResult([this] { qCDebug(processLog) << *this; });
|
ExecuteOnDestruction logResult([this] { qCDebug(processLog) << *this; });
|
||||||
|
|
||||||
d->clearForRun();
|
d->clearForRun();
|
||||||
|
|
||||||
d->m_binary = cmd.executable();
|
d->m_binary = d->m_commandLine.executable();
|
||||||
// using QProcess::start() and passing program, args and OpenMode results in a different
|
// using QProcess::start() and passing program, args and OpenMode results in a different
|
||||||
// quoting of arguments than using QProcess::setArguments() beforehand and calling start()
|
// quoting of arguments than using QProcess::setArguments() beforehand and calling start()
|
||||||
// only with the OpenMode
|
// only with the OpenMode
|
||||||
setCommand(cmd);
|
|
||||||
if (!d->m_writeData.isEmpty()) {
|
if (!d->m_writeData.isEmpty()) {
|
||||||
connect(this, &QProcess::started, this, [this] {
|
connect(this, &QProcess::started, this, [this] {
|
||||||
write(d->m_writeData);
|
write(d->m_writeData);
|
||||||
@@ -833,11 +838,11 @@ void QtcProcess::run(const CommandLine &cmd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void QtcProcess::runBlocking(const CommandLine &cmd)
|
void QtcProcess::runBlocking()
|
||||||
{
|
{
|
||||||
|
QTC_CHECK(d->m_isSynchronousProcess);
|
||||||
// FIXME: Implement properly
|
// FIXME: Implement properly
|
||||||
if (cmd.executable().needsDevice()) {
|
if (d->m_commandLine.executable().needsDevice()) {
|
||||||
setCommand(cmd);
|
|
||||||
|
|
||||||
// writeData ?
|
// writeData ?
|
||||||
start();
|
start();
|
||||||
@@ -851,14 +856,13 @@ void QtcProcess::runBlocking(const CommandLine &cmd)
|
|||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
qCDebug(processLog).noquote() << "Starting blocking:" << cmd.toUserOutput();
|
qCDebug(processLog).noquote() << "Starting blocking:" << d->m_commandLine.toUserOutput();
|
||||||
ExecuteOnDestruction logResult([this] { qCDebug(processLog) << *this; });
|
ExecuteOnDestruction logResult([this] { qCDebug(processLog) << *this; });
|
||||||
|
|
||||||
d->clearForRun();
|
d->clearForRun();
|
||||||
|
|
||||||
d->m_binary = cmd.executable();
|
d->m_binary = d->m_commandLine.executable();
|
||||||
setOpenMode(QIODevice::ReadOnly);
|
setOpenMode(QIODevice::ReadOnly);
|
||||||
setCommand(cmd);
|
|
||||||
start();
|
start();
|
||||||
if (!waitForStarted(d->m_maxHangTimerCount * 1000)) {
|
if (!waitForStarted(d->m_maxHangTimerCount * 1000)) {
|
||||||
d->m_result = QtcProcess::StartFailed;
|
d->m_result = QtcProcess::StartFailed;
|
||||||
@@ -890,11 +894,13 @@ void QtcProcess::runBlocking(const CommandLine &cmd)
|
|||||||
|
|
||||||
void QtcProcess::setStdOutCallback(const std::function<void (const QString &)> &callback)
|
void QtcProcess::setStdOutCallback(const std::function<void (const QString &)> &callback)
|
||||||
{
|
{
|
||||||
|
QTC_CHECK(d->m_isSynchronousProcess);
|
||||||
d->m_stdOut.outputCallback = callback;
|
d->m_stdOut.outputCallback = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QtcProcess::setStdErrCallback(const std::function<void (const QString &)> &callback)
|
void QtcProcess::setStdErrCallback(const std::function<void (const QString &)> &callback)
|
||||||
{
|
{
|
||||||
|
QTC_CHECK(d->m_isSynchronousProcess);
|
||||||
d->m_stdErr.outputCallback = callback;
|
d->m_stdErr.outputCallback = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -90,9 +90,14 @@ public:
|
|||||||
void setWriteData(const QByteArray &writeData);
|
void setWriteData(const QByteArray &writeData);
|
||||||
|
|
||||||
// Starts a nested event loop and runs the command
|
// Starts a nested event loop and runs the command
|
||||||
void run(const CommandLine &cmd);
|
void run();
|
||||||
|
|
||||||
// Starts the command blocking the UI fully
|
// Starts the command blocking the UI fully
|
||||||
void runBlocking(const CommandLine &cmd);
|
void runBlocking();
|
||||||
|
|
||||||
|
// FIXME: Remove. Kept for downstream for a while.
|
||||||
|
void run(const CommandLine &cmd) { setCommand(cmd); run(); }
|
||||||
|
void runBlocking(const CommandLine &cmd) { setCommand(cmd); runBlocking(); }
|
||||||
|
|
||||||
void setStdOutCallback(const std::function<void(const QString &)> &callback);
|
void setStdOutCallback(const std::function<void(const QString &)> &callback);
|
||||||
void setStdErrCallback(const std::function<void(const QString &)> &callback);
|
void setStdErrCallback(const std::function<void(const QString &)> &callback);
|
||||||
|
|||||||
@@ -323,12 +323,13 @@ void ShellCommand::runCommand(SynchronousProcess &proc,
|
|||||||
if (!(d->m_flags & SuppressCommandLogging))
|
if (!(d->m_flags & SuppressCommandLogging))
|
||||||
emit proxy->appendCommand(dir, command);
|
emit proxy->appendCommand(dir, command);
|
||||||
|
|
||||||
|
proc.setCommand(command);
|
||||||
if ((d->m_flags & FullySynchronously)
|
if ((d->m_flags & FullySynchronously)
|
||||||
|| (!(d->m_flags & NoFullySync)
|
|| (!(d->m_flags & NoFullySync)
|
||||||
&& QThread::currentThread() == QCoreApplication::instance()->thread())) {
|
&& QThread::currentThread() == QCoreApplication::instance()->thread())) {
|
||||||
runFullySynchronous(proc, command, proxy, dir);
|
runFullySynchronous(proc, proxy, dir);
|
||||||
} else {
|
} else {
|
||||||
runSynchronous(proc, command, proxy, dir);
|
runSynchronous(proc, proxy, dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!d->m_aborted) {
|
if (!d->m_aborted) {
|
||||||
@@ -343,7 +344,6 @@ void ShellCommand::runCommand(SynchronousProcess &proc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ShellCommand::runFullySynchronous(SynchronousProcess &process,
|
void ShellCommand::runFullySynchronous(SynchronousProcess &process,
|
||||||
const CommandLine &cmd,
|
|
||||||
QSharedPointer<OutputProxy> proxy,
|
QSharedPointer<OutputProxy> proxy,
|
||||||
const QString &workingDirectory)
|
const QString &workingDirectory)
|
||||||
{
|
{
|
||||||
@@ -359,7 +359,7 @@ void ShellCommand::runFullySynchronous(SynchronousProcess &process,
|
|||||||
if (d->m_codec)
|
if (d->m_codec)
|
||||||
process.setCodec(d->m_codec);
|
process.setCodec(d->m_codec);
|
||||||
|
|
||||||
process.runBlocking(cmd);
|
process.runBlocking();
|
||||||
|
|
||||||
if (!d->m_aborted) {
|
if (!d->m_aborted) {
|
||||||
const QString stdErr = process.stdErr();
|
const QString stdErr = process.stdErr();
|
||||||
@@ -377,7 +377,6 @@ void ShellCommand::runFullySynchronous(SynchronousProcess &process,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ShellCommand::runSynchronous(SynchronousProcess &process,
|
void ShellCommand::runSynchronous(SynchronousProcess &process,
|
||||||
const CommandLine &cmd,
|
|
||||||
QSharedPointer<OutputProxy> proxy,
|
QSharedPointer<OutputProxy> proxy,
|
||||||
const QString &workingDirectory)
|
const QString &workingDirectory)
|
||||||
{
|
{
|
||||||
@@ -423,7 +422,7 @@ void ShellCommand::runSynchronous(SynchronousProcess &process,
|
|||||||
if (d->m_codec)
|
if (d->m_codec)
|
||||||
process.setCodec(d->m_codec);
|
process.setCodec(d->m_codec);
|
||||||
|
|
||||||
process.run(cmd);
|
process.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
const QVariant &ShellCommand::cookie() const
|
const QVariant &ShellCommand::cookie() const
|
||||||
|
|||||||
@@ -167,12 +167,10 @@ private:
|
|||||||
|
|
||||||
// Run without a event loop in fully blocking mode. No signals will be delivered.
|
// Run without a event loop in fully blocking mode. No signals will be delivered.
|
||||||
void runFullySynchronous(SynchronousProcess &proc,
|
void runFullySynchronous(SynchronousProcess &proc,
|
||||||
const CommandLine &cmd,
|
|
||||||
QSharedPointer<OutputProxy> proxy,
|
QSharedPointer<OutputProxy> proxy,
|
||||||
const QString &workingDirectory);
|
const QString &workingDirectory);
|
||||||
// Run with an event loop. Signals will be delivered.
|
// Run with an event loop. Signals will be delivered.
|
||||||
void runSynchronous(SynchronousProcess &proc,
|
void runSynchronous(SynchronousProcess &proc,
|
||||||
const CommandLine &cmd,
|
|
||||||
QSharedPointer<OutputProxy> proxy,
|
QSharedPointer<OutputProxy> proxy,
|
||||||
const QString &workingDirectory);
|
const QString &workingDirectory);
|
||||||
|
|
||||||
|
|||||||
@@ -70,7 +70,8 @@ bool AndroidAvdManager::avdManagerCommand(const AndroidConfig &config, const QSt
|
|||||||
Environment env = AndroidConfigurations::toolsEnvironment(config);
|
Environment env = AndroidConfigurations::toolsEnvironment(config);
|
||||||
proc.setEnvironment(env);
|
proc.setEnvironment(env);
|
||||||
qCDebug(avdManagerLog) << "Running AVD Manager command:" << cmd.toUserOutput();
|
qCDebug(avdManagerLog) << "Running AVD Manager command:" << cmd.toUserOutput();
|
||||||
proc.runBlocking(cmd);
|
proc.setCommand(cmd);
|
||||||
|
proc.runBlocking();
|
||||||
if (proc.result() == Utils::QtcProcess::Finished) {
|
if (proc.result() == Utils::QtcProcess::Finished) {
|
||||||
if (output)
|
if (output)
|
||||||
*output = proc.allOutput();
|
*output = proc.allOutput();
|
||||||
@@ -201,7 +202,8 @@ bool AndroidAvdManager::removeAvd(const QString &name) const
|
|||||||
qCDebug(avdManagerLog) << "Running command (removeAvd):" << command.toUserOutput();
|
qCDebug(avdManagerLog) << "Running command (removeAvd):" << command.toUserOutput();
|
||||||
SynchronousProcess proc;
|
SynchronousProcess proc;
|
||||||
proc.setTimeoutS(5);
|
proc.setTimeoutS(5);
|
||||||
proc.runBlocking(command);
|
proc.setCommand(command);
|
||||||
|
proc.runBlocking();
|
||||||
return proc.result() == QtcProcess::Finished && proc.exitCode() == 0;
|
return proc.result() == QtcProcess::Finished && proc.exitCode() == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -350,7 +352,8 @@ bool AndroidAvdManager::isAvdBooted(const QString &device) const
|
|||||||
qCDebug(avdManagerLog) << "Running command (isAvdBooted):" << command.toUserOutput();
|
qCDebug(avdManagerLog) << "Running command (isAvdBooted):" << command.toUserOutput();
|
||||||
SynchronousProcess adbProc;
|
SynchronousProcess adbProc;
|
||||||
adbProc.setTimeoutS(10);
|
adbProc.setTimeoutS(10);
|
||||||
adbProc.runBlocking(command);
|
adbProc.setCommand(command);
|
||||||
|
adbProc.runBlocking();
|
||||||
if (adbProc.result() != QtcProcess::Finished)
|
if (adbProc.result() != QtcProcess::Finished)
|
||||||
return false;
|
return false;
|
||||||
QString value = adbProc.allOutput().trimmed();
|
QString value = adbProc.allOutput().trimmed();
|
||||||
|
|||||||
@@ -1009,7 +1009,8 @@ QAbstractItemModel *AndroidBuildApkStep::keystoreCertificates()
|
|||||||
|
|
||||||
SynchronousProcess keytoolProc;
|
SynchronousProcess keytoolProc;
|
||||||
keytoolProc.setTimeoutS(30);
|
keytoolProc.setTimeoutS(30);
|
||||||
keytoolProc.run({AndroidConfigurations::currentConfig().keytoolPath(), params});
|
keytoolProc.setCommand({AndroidConfigurations::currentConfig().keytoolPath(), params});
|
||||||
|
keytoolProc.run();
|
||||||
if (keytoolProc.result() > QtcProcess::FinishedError)
|
if (keytoolProc.result() > QtcProcess::FinishedError)
|
||||||
QMessageBox::critical(nullptr, tr("Error"), tr("Failed to run keytool."));
|
QMessageBox::critical(nullptr, tr("Error"), tr("Failed to run keytool."));
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -159,7 +159,8 @@ namespace {
|
|||||||
SynchronousProcess proc;
|
SynchronousProcess proc;
|
||||||
proc.setProcessChannelMode(QProcess::MergedChannels);
|
proc.setProcessChannelMode(QProcess::MergedChannels);
|
||||||
proc.setTimeoutS(30);
|
proc.setTimeoutS(30);
|
||||||
proc.runBlocking({executable, {shell}});
|
proc.setCommand({executable, {shell}});
|
||||||
|
proc.runBlocking();
|
||||||
if (proc.result() != QtcProcess::Finished)
|
if (proc.result() != QtcProcess::Finished)
|
||||||
return true;
|
return true;
|
||||||
return !proc.allOutput().contains("x86-64");
|
return !proc.allOutput().contains("x86-64");
|
||||||
@@ -561,7 +562,8 @@ QVector<AndroidDeviceInfo> AndroidConfig::connectedDevices(const FilePath &adbTo
|
|||||||
SynchronousProcess adbProc;
|
SynchronousProcess adbProc;
|
||||||
adbProc.setTimeoutS(30);
|
adbProc.setTimeoutS(30);
|
||||||
CommandLine cmd{adbToolPath, {"devices"}};
|
CommandLine cmd{adbToolPath, {"devices"}};
|
||||||
adbProc.runBlocking(cmd);
|
adbProc.setCommand(cmd);
|
||||||
|
adbProc.runBlocking();
|
||||||
if (adbProc.result() != QtcProcess::Finished) {
|
if (adbProc.result() != QtcProcess::Finished) {
|
||||||
if (error)
|
if (error)
|
||||||
*error = QApplication::translate("AndroidConfiguration", "Could not run: %1")
|
*error = QApplication::translate("AndroidConfiguration", "Could not run: %1")
|
||||||
@@ -629,7 +631,8 @@ QString AndroidConfig::getDeviceProperty(const FilePath &adbToolPath, const QStr
|
|||||||
|
|
||||||
SynchronousProcess adbProc;
|
SynchronousProcess adbProc;
|
||||||
adbProc.setTimeoutS(10);
|
adbProc.setTimeoutS(10);
|
||||||
adbProc.runBlocking(cmd);
|
adbProc.setCommand(cmd);
|
||||||
|
adbProc.runBlocking();
|
||||||
if (adbProc.result() != QtcProcess::Finished)
|
if (adbProc.result() != QtcProcess::Finished)
|
||||||
return QString();
|
return QString();
|
||||||
|
|
||||||
@@ -726,7 +729,8 @@ QStringList AndroidConfig::getAbis(const FilePath &adbToolPath, const QString &d
|
|||||||
arguments << "shell" << "getprop" << "ro.product.cpu.abilist";
|
arguments << "shell" << "getprop" << "ro.product.cpu.abilist";
|
||||||
SynchronousProcess adbProc;
|
SynchronousProcess adbProc;
|
||||||
adbProc.setTimeoutS(10);
|
adbProc.setTimeoutS(10);
|
||||||
adbProc.runBlocking({adbToolPath, arguments});
|
adbProc.setCommand({adbToolPath, arguments});
|
||||||
|
adbProc.runBlocking();
|
||||||
if (adbProc.result() != QtcProcess::Finished)
|
if (adbProc.result() != QtcProcess::Finished)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
@@ -748,7 +752,8 @@ QStringList AndroidConfig::getAbis(const FilePath &adbToolPath, const QString &d
|
|||||||
|
|
||||||
SynchronousProcess abiProc;
|
SynchronousProcess abiProc;
|
||||||
abiProc.setTimeoutS(10);
|
abiProc.setTimeoutS(10);
|
||||||
abiProc.runBlocking({adbToolPath, arguments});
|
abiProc.setCommand({adbToolPath, arguments});
|
||||||
|
abiProc.runBlocking();
|
||||||
if (abiProc.result() != QtcProcess::Finished)
|
if (abiProc.result() != QtcProcess::Finished)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
|
|||||||
@@ -198,7 +198,8 @@ void AndroidCreateKeystoreCertificate::buttonBoxAccepted()
|
|||||||
|
|
||||||
SynchronousProcess genKeyCertProc;
|
SynchronousProcess genKeyCertProc;
|
||||||
genKeyCertProc.setTimeoutS(15);
|
genKeyCertProc.setTimeoutS(15);
|
||||||
genKeyCertProc.run(command);
|
genKeyCertProc.setCommand(command);
|
||||||
|
genKeyCertProc.run();
|
||||||
|
|
||||||
if (genKeyCertProc.result() != QtcProcess::Finished || genKeyCertProc.exitCode() != 0) {
|
if (genKeyCertProc.result() != QtcProcess::Finished || genKeyCertProc.exitCode() != 0) {
|
||||||
QMessageBox::critical(this, tr("Error"),
|
QMessageBox::critical(this, tr("Error"),
|
||||||
|
|||||||
@@ -482,7 +482,8 @@ void AndroidDeployQtStep::runCommand(const CommandLine &command)
|
|||||||
emit addOutput(tr("Package deploy: Running command \"%1\".").arg(command.toUserOutput()),
|
emit addOutput(tr("Package deploy: Running command \"%1\".").arg(command.toUserOutput()),
|
||||||
OutputFormat::NormalMessage);
|
OutputFormat::NormalMessage);
|
||||||
|
|
||||||
buildProc.run(command);
|
buildProc.setCommand(command);
|
||||||
|
buildProc.run();
|
||||||
if (buildProc.result() != QtcProcess::Finished || buildProc.exitCode() != 0) {
|
if (buildProc.result() != QtcProcess::Finished || buildProc.exitCode() != 0) {
|
||||||
const QString error = buildProc.exitMessage();
|
const QString error = buildProc.exitMessage();
|
||||||
emit addOutput(error, OutputFormat::ErrorMessage);
|
emit addOutput(error, OutputFormat::ErrorMessage);
|
||||||
|
|||||||
@@ -538,7 +538,8 @@ bool AndroidManager::checkKeystorePassword(const QString &keystorePath, const QS
|
|||||||
{"-list", "-keystore", keystorePath, "--storepass", keystorePasswd});
|
{"-list", "-keystore", keystorePath, "--storepass", keystorePasswd});
|
||||||
SynchronousProcess proc;
|
SynchronousProcess proc;
|
||||||
proc.setTimeoutS(10);
|
proc.setTimeoutS(10);
|
||||||
proc.run(cmd);
|
proc.setCommand(cmd);
|
||||||
|
proc.run();
|
||||||
return proc.result() == QtcProcess::Finished && proc.exitCode() == 0;
|
return proc.result() == QtcProcess::Finished && proc.exitCode() == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -554,7 +555,8 @@ bool AndroidManager::checkCertificatePassword(const QString &keystorePath, const
|
|||||||
|
|
||||||
SynchronousProcess proc;
|
SynchronousProcess proc;
|
||||||
proc.setTimeoutS(10);
|
proc.setTimeoutS(10);
|
||||||
proc.run({AndroidConfigurations::currentConfig().keytoolPath(), arguments});
|
proc.setCommand({AndroidConfigurations::currentConfig().keytoolPath(), arguments});
|
||||||
|
proc.run();
|
||||||
return proc.result() == QtcProcess::Finished && proc.exitCode() == 0;
|
return proc.result() == QtcProcess::Finished && proc.exitCode() == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -567,7 +569,8 @@ bool AndroidManager::checkCertificateExists(const QString &keystorePath,
|
|||||||
|
|
||||||
SynchronousProcess proc;
|
SynchronousProcess proc;
|
||||||
proc.setTimeoutS(10);
|
proc.setTimeoutS(10);
|
||||||
proc.run({AndroidConfigurations::currentConfig().keytoolPath(), arguments});
|
proc.setCommand({AndroidConfigurations::currentConfig().keytoolPath(), arguments});
|
||||||
|
proc.run();
|
||||||
return proc.result() == QtcProcess::Finished && proc.exitCode() == 0;
|
return proc.result() == QtcProcess::Finished && proc.exitCode() == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -723,7 +726,8 @@ SdkToolResult AndroidManager::runCommand(const CommandLine &command,
|
|||||||
cmdProc.setTimeoutS(timeoutS);
|
cmdProc.setTimeoutS(timeoutS);
|
||||||
cmdProc.setWriteData(writeData);
|
cmdProc.setWriteData(writeData);
|
||||||
qCDebug(androidManagerLog) << "Running command (sync):" << command.toUserOutput();
|
qCDebug(androidManagerLog) << "Running command (sync):" << command.toUserOutput();
|
||||||
cmdProc.run(command);
|
cmdProc.setCommand(command);
|
||||||
|
cmdProc.run();
|
||||||
cmdResult.m_stdOut = cmdProc.stdOut().trimmed();
|
cmdResult.m_stdOut = cmdProc.stdOut().trimmed();
|
||||||
cmdResult.m_stdErr = cmdProc.stdErr().trimmed();
|
cmdResult.m_stdErr = cmdProc.stdErr().trimmed();
|
||||||
cmdResult.m_success = cmdProc.result() == QtcProcess::Finished;
|
cmdResult.m_success = cmdProc.result() == QtcProcess::Finished;
|
||||||
|
|||||||
@@ -138,7 +138,8 @@ static void findProcessPID(QFutureInterface<qint64> &fi, QStringList selector,
|
|||||||
do {
|
do {
|
||||||
QThread::msleep(200);
|
QThread::msleep(200);
|
||||||
SynchronousProcess proc;
|
SynchronousProcess proc;
|
||||||
proc.runBlocking({adbPath, args});
|
proc.setCommand({adbPath, args});
|
||||||
|
proc.runBlocking();
|
||||||
const QByteArray out = proc.allRawOutput();
|
const QByteArray out = proc.allRawOutput();
|
||||||
if (preNougat) {
|
if (preNougat) {
|
||||||
processPID = extractPID(out, packageName);
|
processPID = extractPID(out, packageName);
|
||||||
|
|||||||
@@ -154,7 +154,8 @@ static bool sdkManagerCommand(const AndroidConfig &config, const QStringList &ar
|
|||||||
proc.setEnvironment(AndroidConfigurations::toolsEnvironment(config));
|
proc.setEnvironment(AndroidConfigurations::toolsEnvironment(config));
|
||||||
proc.setTimeoutS(timeout);
|
proc.setTimeoutS(timeout);
|
||||||
proc.setTimeOutMessageBoxEnabled(true);
|
proc.setTimeOutMessageBoxEnabled(true);
|
||||||
proc.run({config.sdkManagerToolPath(), newArgs});
|
proc.setCommand({config.sdkManagerToolPath(), newArgs});
|
||||||
|
proc.run();
|
||||||
if (output)
|
if (output)
|
||||||
*output = proc.allOutput();
|
*output = proc.allOutput();
|
||||||
return proc.result() == QtcProcess::Finished;
|
return proc.result() == QtcProcess::Finished;
|
||||||
@@ -194,7 +195,8 @@ static void sdkManagerCommand(const AndroidConfig &config, const QStringList &ar
|
|||||||
QObject::connect(&sdkManager, &AndroidSdkManager::cancelActiveOperations,
|
QObject::connect(&sdkManager, &AndroidSdkManager::cancelActiveOperations,
|
||||||
&proc, &SynchronousProcess::stopProcess);
|
&proc, &SynchronousProcess::stopProcess);
|
||||||
}
|
}
|
||||||
proc.run({config.sdkManagerToolPath(), newArgs});
|
proc.setCommand({config.sdkManagerToolPath(), newArgs});
|
||||||
|
proc.run();
|
||||||
if (assertionFound) {
|
if (assertionFound) {
|
||||||
output.success = false;
|
output.success = false;
|
||||||
output.stdOutput = proc.stdOut();
|
output.stdOutput = proc.stdOut();
|
||||||
|
|||||||
@@ -111,7 +111,8 @@ static Macros dumpPredefinedMacros(const FilePath &compiler, const QStringList &
|
|||||||
cmd.addArg("--predef_macros");
|
cmd.addArg("--predef_macros");
|
||||||
cmd.addArg(outpath);
|
cmd.addArg(outpath);
|
||||||
|
|
||||||
cpp.runBlocking(cmd);
|
cpp.setCommand(cmd);
|
||||||
|
cpp.runBlocking();
|
||||||
if (cpp.result() != QtcProcess::Finished || cpp.exitCode() != 0) {
|
if (cpp.result() != QtcProcess::Finished || cpp.exitCode() != 0) {
|
||||||
qWarning() << cpp.exitMessage();
|
qWarning() << cpp.exitMessage();
|
||||||
return {};
|
return {};
|
||||||
@@ -145,18 +146,17 @@ static HeaderPaths dumpHeaderPaths(const FilePath &compiler, const Id languageId
|
|||||||
return {};
|
return {};
|
||||||
fakeIn.close();
|
fakeIn.close();
|
||||||
|
|
||||||
SynchronousProcess cpp;
|
|
||||||
cpp.setEnvironment(env);
|
|
||||||
cpp.setTimeoutS(10);
|
|
||||||
|
|
||||||
CommandLine cmd(compiler, {fakeIn.fileName()});
|
CommandLine cmd(compiler, {fakeIn.fileName()});
|
||||||
if (languageId == ProjectExplorer::Constants::CXX_LANGUAGE_ID)
|
if (languageId == ProjectExplorer::Constants::CXX_LANGUAGE_ID)
|
||||||
cmd.addArg(cppLanguageOption(compiler));
|
cmd.addArg(cppLanguageOption(compiler));
|
||||||
cmd.addArg("--preinclude");
|
cmd.addArg("--preinclude");
|
||||||
cmd.addArg(".");
|
cmd.addArg(".");
|
||||||
|
|
||||||
// Note: Response should retutn an error, just don't check on errors.
|
SynchronousProcess cpp;
|
||||||
cpp.runBlocking(cmd);
|
cpp.setEnvironment(env);
|
||||||
|
cpp.setTimeoutS(10);
|
||||||
|
cpp.setCommand(cmd);
|
||||||
|
cpp.runBlocking();
|
||||||
|
|
||||||
HeaderPaths headerPaths;
|
HeaderPaths headerPaths;
|
||||||
|
|
||||||
|
|||||||
@@ -138,9 +138,9 @@ static Macros dumpMcsPredefinedMacros(const FilePath &compiler, const Environmen
|
|||||||
SynchronousProcess cpp;
|
SynchronousProcess cpp;
|
||||||
cpp.setEnvironment(env);
|
cpp.setEnvironment(env);
|
||||||
cpp.setTimeoutS(10);
|
cpp.setTimeoutS(10);
|
||||||
|
cpp.setCommand({compiler, {fakeIn.fileName()}});
|
||||||
|
|
||||||
const CommandLine cmd(compiler, {fakeIn.fileName()});
|
cpp.runBlocking();
|
||||||
cpp.runBlocking(cmd);
|
|
||||||
QString output = cpp.allOutput();
|
QString output = cpp.allOutput();
|
||||||
Macros macros;
|
Macros macros;
|
||||||
QTextStream stream(&output);
|
QTextStream stream(&output);
|
||||||
@@ -268,8 +268,8 @@ static Macros dumpC166PredefinedMacros(const FilePath &compiler, const Environme
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const CommandLine cmd(compiler, {fakeIn.fileName()});
|
cpp.setCommand({compiler, {fakeIn.fileName()}});
|
||||||
cpp.runBlocking(cmd);
|
cpp.runBlocking();
|
||||||
const QString output = cpp.allOutput();
|
const QString output = cpp.allOutput();
|
||||||
extractMacros(output);
|
extractMacros(output);
|
||||||
return macros;
|
return macros;
|
||||||
@@ -284,9 +284,9 @@ static Macros dumpArmPredefinedMacros(const FilePath &compiler, const QStringLis
|
|||||||
QStringList args = extraArgs;
|
QStringList args = extraArgs;
|
||||||
args.push_back("-E");
|
args.push_back("-E");
|
||||||
args.push_back("--list-macros");
|
args.push_back("--list-macros");
|
||||||
const CommandLine cmd(compiler, args);
|
cpp.setCommand({compiler, args});
|
||||||
|
|
||||||
cpp.runBlocking(cmd);
|
cpp.runBlocking();
|
||||||
if (cpp.result() != QtcProcess::Finished || cpp.exitCode() != 0) {
|
if (cpp.result() != QtcProcess::Finished || cpp.exitCode() != 0) {
|
||||||
qWarning() << cpp.exitMessage();
|
qWarning() << cpp.exitMessage();
|
||||||
return {};
|
return {};
|
||||||
|
|||||||
@@ -90,10 +90,9 @@ static Macros dumpPredefinedMacros(const FilePath &compiler, const Environment &
|
|||||||
SynchronousProcess cpp;
|
SynchronousProcess cpp;
|
||||||
cpp.setEnvironment(env);
|
cpp.setEnvironment(env);
|
||||||
cpp.setTimeoutS(10);
|
cpp.setTimeoutS(10);
|
||||||
|
cpp.setCommand({compiler, {compilerTargetFlag(abi), "-dM", "-E", fakeIn.fileName()}});
|
||||||
|
|
||||||
const CommandLine cmd(compiler, {compilerTargetFlag(abi), "-dM", "-E", fakeIn.fileName()});
|
cpp.runBlocking();
|
||||||
|
|
||||||
cpp.runBlocking(cmd);
|
|
||||||
if (cpp.result() != QtcProcess::Finished || cpp.exitCode() != 0) {
|
if (cpp.result() != QtcProcess::Finished || cpp.exitCode() != 0) {
|
||||||
qWarning() << cpp.exitMessage();
|
qWarning() << cpp.exitMessage();
|
||||||
return {};
|
return {};
|
||||||
@@ -112,10 +111,9 @@ static HeaderPaths dumpHeaderPaths(const FilePath &compiler, const Environment &
|
|||||||
SynchronousProcess cpp;
|
SynchronousProcess cpp;
|
||||||
cpp.setEnvironment(env);
|
cpp.setEnvironment(env);
|
||||||
cpp.setTimeoutS(10);
|
cpp.setTimeoutS(10);
|
||||||
|
cpp.setCommand({compiler, {compilerTargetFlag(abi), "--print-search-dirs"}});
|
||||||
|
|
||||||
const CommandLine cmd(compiler, {compilerTargetFlag(abi), "--print-search-dirs"});
|
cpp.runBlocking();
|
||||||
|
|
||||||
cpp.runBlocking(cmd);
|
|
||||||
if (cpp.result() != QtcProcess::Finished || cpp.exitCode() != 0) {
|
if (cpp.result() != QtcProcess::Finished || cpp.exitCode() != 0) {
|
||||||
qWarning() << cpp.exitMessage();
|
qWarning() << cpp.exitMessage();
|
||||||
return {};
|
return {};
|
||||||
|
|||||||
@@ -84,7 +84,8 @@ static int parseVersion(const QString &text)
|
|||||||
static int updateVersionHelper(const Utils::FilePath &command)
|
static int updateVersionHelper(const Utils::FilePath &command)
|
||||||
{
|
{
|
||||||
Utils::SynchronousProcess process;
|
Utils::SynchronousProcess process;
|
||||||
process.runBlocking({command, {"--version"}});
|
process.setCommand({command, {"--version"}});
|
||||||
|
process.runBlocking();
|
||||||
if (process.result() != Utils::QtcProcess::Finished)
|
if (process.result() != Utils::QtcProcess::Finished)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@@ -181,7 +182,8 @@ void ArtisticStyleSettings::createDocumentationFile() const
|
|||||||
{
|
{
|
||||||
Utils::SynchronousProcess process;
|
Utils::SynchronousProcess process;
|
||||||
process.setTimeoutS(2);
|
process.setTimeoutS(2);
|
||||||
process.runBlocking({command(), {"-h"}});
|
process.setCommand({command(), {"-h"}});
|
||||||
|
process.runBlocking();
|
||||||
if (process.result() != Utils::QtcProcess::Finished)
|
if (process.result() != Utils::QtcProcess::Finished)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@@ -150,7 +150,8 @@ void UncrustifySettings::createDocumentationFile() const
|
|||||||
{
|
{
|
||||||
Utils::SynchronousProcess process;
|
Utils::SynchronousProcess process;
|
||||||
process.setTimeoutS(2);
|
process.setTimeoutS(2);
|
||||||
process.runBlocking({command(), {"--show-config"}});
|
process.setCommand({command(), {"--show-config"}});
|
||||||
|
process.runBlocking();
|
||||||
if (process.result() != Utils::QtcProcess::Finished)
|
if (process.result() != Utils::QtcProcess::Finished)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@@ -107,8 +107,9 @@ bool ClangToolRunner::supportsVFSOverlay() const
|
|||||||
static QMap<QString, bool> vfsCapabilities;
|
static QMap<QString, bool> vfsCapabilities;
|
||||||
auto it = vfsCapabilities.find(m_executable);
|
auto it = vfsCapabilities.find(m_executable);
|
||||||
if (it == vfsCapabilities.end()) {
|
if (it == vfsCapabilities.end()) {
|
||||||
Utils::SynchronousProcess p;
|
SynchronousProcess p;
|
||||||
p.runBlocking(Utils::CommandLine(m_executable, {"--help"}));
|
p.setCommand({m_executable, {"--help"}});
|
||||||
|
p.runBlocking();
|
||||||
it = vfsCapabilities.insert(m_executable, p.allOutput().contains("vfsoverlay"));
|
it = vfsCapabilities.insert(m_executable, p.allOutput().contains("vfsoverlay"));
|
||||||
}
|
}
|
||||||
return it.value();
|
return it.value();
|
||||||
|
|||||||
@@ -54,8 +54,9 @@ static QString runExecutable(const Utils::CommandLine &commandLine,
|
|||||||
Environment env = Environment::systemEnvironment();
|
Environment env = Environment::systemEnvironment();
|
||||||
Environment::setupEnglishOutput(&env);
|
Environment::setupEnglishOutput(&env);
|
||||||
cpp.setEnvironment(env);
|
cpp.setEnvironment(env);
|
||||||
|
cpp.setCommand(commandLine);
|
||||||
|
|
||||||
cpp.runBlocking(commandLine);
|
cpp.runBlocking();
|
||||||
if (cpp.result() != QtcProcess::Finished
|
if (cpp.result() != QtcProcess::Finished
|
||||||
&& (failSilently == FailSilently::No
|
&& (failSilently == FailSilently::No
|
||||||
|| cpp.result() != QtcProcess::FinishedError)) {
|
|| cpp.result() != QtcProcess::FinishedError)) {
|
||||||
|
|||||||
@@ -2358,7 +2358,8 @@ QString ClearCasePluginPrivate::runExtDiff(const QString &workingDir, const QStr
|
|||||||
process.setTimeoutS(timeOutS);
|
process.setTimeoutS(timeOutS);
|
||||||
process.setWorkingDirectory(workingDir);
|
process.setWorkingDirectory(workingDir);
|
||||||
process.setCodec(outputCodec ? outputCodec : QTextCodec::codecForName("UTF-8"));
|
process.setCodec(outputCodec ? outputCodec : QTextCodec::codecForName("UTF-8"));
|
||||||
process.run(diff);
|
process.setCommand(diff);
|
||||||
|
process.run();
|
||||||
if (process.result() != QtcProcess::Finished)
|
if (process.result() != QtcProcess::Finished)
|
||||||
return QString();
|
return QString();
|
||||||
return process.allOutput();
|
return process.allOutput();
|
||||||
|
|||||||
@@ -239,8 +239,8 @@ static FilePath qmakeFromCMakeCache(const CMakeConfig &config)
|
|||||||
}
|
}
|
||||||
|
|
||||||
qCDebug(cmInputLog) << "CMake probing for qmake path: " << cmakeExecutable.toUserOutput() << args;
|
qCDebug(cmInputLog) << "CMake probing for qmake path: " << cmakeExecutable.toUserOutput() << args;
|
||||||
cmake.runBlocking({cmakeExecutable, args});
|
cmake.setCommand({cmakeExecutable, args});
|
||||||
|
cmake.runBlocking();
|
||||||
|
|
||||||
QFile qmakeLocationTxt(qtcQMakeProbeDir.path() + "/qmake-location.txt");
|
QFile qmakeLocationTxt(qtcQMakeProbeDir.path() + "/qmake-location.txt");
|
||||||
if (!qmakeLocationTxt.open(QIODevice::ReadOnly)) {
|
if (!qmakeLocationTxt.open(QIODevice::ReadOnly)) {
|
||||||
|
|||||||
@@ -200,8 +200,8 @@ void CMakeTool::runCMake(SynchronousProcess &cmake, const QStringList &args, int
|
|||||||
Environment::setupEnglishOutput(&env);
|
Environment::setupEnglishOutput(&env);
|
||||||
cmake.setEnvironment(env);
|
cmake.setEnvironment(env);
|
||||||
cmake.setTimeOutMessageBoxEnabled(false);
|
cmake.setTimeOutMessageBoxEnabled(false);
|
||||||
|
cmake.setCommand({cmakeExecutable(), args});
|
||||||
cmake.runBlocking({cmakeExecutable(), args});
|
cmake.runBlocking();
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariantMap CMakeTool::toMap() const
|
QVariantMap CMakeTool::toMap() const
|
||||||
|
|||||||
@@ -429,7 +429,8 @@ static std::function<void(QFileInfo)> postCopyOperation()
|
|||||||
// to get it loaded as a plugin in Qt Creator.
|
// to get it loaded as a plugin in Qt Creator.
|
||||||
SynchronousProcess xattr;
|
SynchronousProcess xattr;
|
||||||
xattr.setTimeoutS(1);
|
xattr.setTimeoutS(1);
|
||||||
xattr.runBlocking({"/usr/bin/xattr", {"-d", "com.apple.quarantine", fi.absoluteFilePath()}});
|
xattr.setCommand({"/usr/bin/xattr", {"-d", "com.apple.quarantine", fi.absoluteFilePath()}});
|
||||||
|
xattr.runBlocking();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,8 @@ static QString getConfigurationOfGdbCommand(const FilePath &command, const Utils
|
|||||||
// run gdb with the --configuration opion
|
// run gdb with the --configuration opion
|
||||||
SynchronousProcess proc;
|
SynchronousProcess proc;
|
||||||
proc.setEnvironment(sysEnv);
|
proc.setEnvironment(sysEnv);
|
||||||
proc.runBlocking({command, {"--configuration"}});
|
proc.setCommand({command, {"--configuration"}});
|
||||||
|
proc.runBlocking();
|
||||||
return proc.allOutput();
|
return proc.allOutput();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,7 +186,8 @@ void DebuggerItem::reinitializeFromFile(const Utils::Environment &sysEnv)
|
|||||||
|
|
||||||
SynchronousProcess proc;
|
SynchronousProcess proc;
|
||||||
proc.setEnvironment(sysEnv);
|
proc.setEnvironment(sysEnv);
|
||||||
proc.runBlocking({m_command, {version}});
|
proc.setCommand({m_command, {version}});
|
||||||
|
proc.runBlocking();
|
||||||
if (proc.result() != QtcProcess::Finished) {
|
if (proc.result() != QtcProcess::Finished) {
|
||||||
m_engineType = NoEngineType;
|
m_engineType = NoEngineType;
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -745,7 +745,8 @@ void DebuggerItemManagerPrivate::autoDetectGdbOrLldbDebuggers()
|
|||||||
if (HostOsInfo::isMacHost()) {
|
if (HostOsInfo::isMacHost()) {
|
||||||
SynchronousProcess proc;
|
SynchronousProcess proc;
|
||||||
proc.setTimeoutS(2);
|
proc.setTimeoutS(2);
|
||||||
proc.runBlocking({"xcrun", {"--find", "lldb"}});
|
proc.setCommand({"xcrun", {"--find", "lldb"}});
|
||||||
|
proc.runBlocking();
|
||||||
if (proc.result() == QtcProcess::Finished) {
|
if (proc.result() == QtcProcess::Finished) {
|
||||||
QString lPath = proc.allOutput().trimmed();
|
QString lPath = proc.allOutput().trimmed();
|
||||||
if (!lPath.isEmpty()) {
|
if (!lPath.isEmpty()) {
|
||||||
|
|||||||
@@ -4978,7 +4978,8 @@ CoreInfo CoreInfo::readExecutableNameFromCore(const Runnable &debugger, const QS
|
|||||||
Environment envLang(QProcess::systemEnvironment());
|
Environment envLang(QProcess::systemEnvironment());
|
||||||
Environment::setupEnglishOutput(&envLang);
|
Environment::setupEnglishOutput(&envLang);
|
||||||
proc.setEnvironment(envLang);
|
proc.setEnvironment(envLang);
|
||||||
proc.runBlocking({debugger.executable, args});
|
proc.setCommand({debugger.executable, args});
|
||||||
|
proc.runBlocking();
|
||||||
|
|
||||||
if (proc.result() == QtcProcess::Finished) {
|
if (proc.result() == QtcProcess::Finished) {
|
||||||
QString output = proc.stdOut();
|
QString output = proc.stdOut();
|
||||||
|
|||||||
@@ -235,8 +235,8 @@ static QByteArray decodeProvisioningProfile(const QString &path)
|
|||||||
Utils::SynchronousProcess p;
|
Utils::SynchronousProcess p;
|
||||||
p.setTimeoutS(3);
|
p.setTimeoutS(3);
|
||||||
// path is assumed to be valid file path to .mobileprovision
|
// path is assumed to be valid file path to .mobileprovision
|
||||||
const QStringList args = {"smime", "-inform", "der", "-verify", "-in", path};
|
p.setCommand({"openssl", {"smime", "-inform", "der", "-verify", "-in", path}});
|
||||||
p.runBlocking({"openssl", args});
|
p.runBlocking();
|
||||||
if (p.result() != Utils::QtcProcess::Finished)
|
if (p.result() != Utils::QtcProcess::Finished)
|
||||||
qCDebug(iosCommonLog) << "Reading signed provisioning file failed" << path;
|
qCDebug(iosCommonLog) << "Reading signed provisioning file failed" << path;
|
||||||
return p.stdOut().toLatin1();
|
return p.stdOut().toLatin1();
|
||||||
|
|||||||
@@ -67,8 +67,8 @@ void XcodeProbe::detectDeveloperPaths()
|
|||||||
{
|
{
|
||||||
Utils::SynchronousProcess selectedXcode;
|
Utils::SynchronousProcess selectedXcode;
|
||||||
selectedXcode.setTimeoutS(5);
|
selectedXcode.setTimeoutS(5);
|
||||||
const CommandLine xcodeSelect{"/usr/bin/xcode-select", {"--print-path"}};
|
selectedXcode.setCommand({"/usr/bin/xcode-select", {"--print-path"}});
|
||||||
selectedXcode.run(xcodeSelect);
|
selectedXcode.run();
|
||||||
if (selectedXcode.result() != QtcProcess::Finished)
|
if (selectedXcode.result() != QtcProcess::Finished)
|
||||||
qCWarning(probeLog)
|
qCWarning(probeLog)
|
||||||
<< QString::fromLatin1("Could not detect selected Xcode using xcode-select");
|
<< QString::fromLatin1("Could not detect selected Xcode using xcode-select");
|
||||||
|
|||||||
@@ -83,7 +83,8 @@ static bool runCommand(const CommandLine &command, QString *stdOutput, QString *
|
|||||||
{
|
{
|
||||||
SynchronousProcess p;
|
SynchronousProcess p;
|
||||||
p.setTimeoutS(-1);
|
p.setTimeoutS(-1);
|
||||||
p.runBlocking(command);
|
p.setCommand(command);
|
||||||
|
p.runBlocking();
|
||||||
if (stdOutput)
|
if (stdOutput)
|
||||||
*stdOutput = p.stdOut();
|
*stdOutput = p.stdOut();
|
||||||
if (allOutput)
|
if (allOutput)
|
||||||
|
|||||||
@@ -1272,7 +1272,8 @@ PerforceResponse PerforcePluginPrivate::synchronousProcess(const QString &workin
|
|||||||
process.setStdOutCallback([](const QString &lines) { VcsOutputWindow::append(lines); });
|
process.setStdOutCallback([](const QString &lines) { VcsOutputWindow::append(lines); });
|
||||||
}
|
}
|
||||||
process.setTimeOutMessageBoxEnabled(true);
|
process.setTimeOutMessageBoxEnabled(true);
|
||||||
process.run({m_settings.p4BinaryPath.value(), args});
|
process.setCommand({m_settings.p4BinaryPath.value(), args});
|
||||||
|
process.run();
|
||||||
|
|
||||||
PerforceResponse response;
|
PerforceResponse response;
|
||||||
response.error = true;
|
response.error = true;
|
||||||
|
|||||||
@@ -112,7 +112,8 @@ static bool
|
|||||||
if (CustomWizard::verbose())
|
if (CustomWizard::verbose())
|
||||||
qDebug("In %s, running:\n%s\n", qPrintable(workingDirectory),
|
qDebug("In %s, running:\n%s\n", qPrintable(workingDirectory),
|
||||||
qPrintable(cmd.toUserOutput()));
|
qPrintable(cmd.toUserOutput()));
|
||||||
process.run(cmd);
|
process.setCommand(cmd);
|
||||||
|
process.run();
|
||||||
if (process.result() != Utils::QtcProcess::Finished) {
|
if (process.result() != Utils::QtcProcess::Finished) {
|
||||||
*errorMessage = QString("Generator script failed: %1").arg(process.exitMessage());
|
*errorMessage = QString("Generator script failed: %1").arg(process.exitMessage());
|
||||||
const QString stdErr = process.stdErr();
|
const QString stdErr = process.stdErr();
|
||||||
|
|||||||
@@ -87,8 +87,8 @@ static QByteArray runGcc(const FilePath &gcc, const QStringList &arguments, cons
|
|||||||
|
|
||||||
cpp.setEnvironment(environment);
|
cpp.setEnvironment(environment);
|
||||||
cpp.setTimeoutS(10);
|
cpp.setTimeoutS(10);
|
||||||
CommandLine cmdLine(gcc, arguments);
|
cpp.setCommand({gcc, arguments});
|
||||||
cpp.runBlocking(cmdLine);
|
cpp.runBlocking();
|
||||||
if (cpp.result() != QtcProcess::Finished || cpp.exitCode() != 0) {
|
if (cpp.result() != QtcProcess::Finished || cpp.exitCode() != 0) {
|
||||||
Core::MessageManager::writeFlashing({"Compiler feature detection failure!",
|
Core::MessageManager::writeFlashing({"Compiler feature detection failure!",
|
||||||
cpp.exitMessage(),
|
cpp.exitMessage(),
|
||||||
|
|||||||
@@ -238,9 +238,9 @@ static QVector<VisualStudioInstallation> detectVisualStudioFromVsWhere(const QSt
|
|||||||
vsWhereProcess.setCodec(QTextCodec::codecForName("UTF-8"));
|
vsWhereProcess.setCodec(QTextCodec::codecForName("UTF-8"));
|
||||||
const int timeoutS = 5;
|
const int timeoutS = 5;
|
||||||
vsWhereProcess.setTimeoutS(timeoutS);
|
vsWhereProcess.setTimeoutS(timeoutS);
|
||||||
const CommandLine cmd(vswhere,
|
vsWhereProcess.setCommand({vswhere,
|
||||||
{"-products", "*", "-prerelease", "-legacy", "-format", "json", "-utf8"});
|
{"-products", "*", "-prerelease", "-legacy", "-format", "json", "-utf8"}});
|
||||||
vsWhereProcess.runBlocking(cmd);
|
vsWhereProcess.runBlocking();
|
||||||
switch (vsWhereProcess.result()) {
|
switch (vsWhereProcess.result()) {
|
||||||
case QtcProcess::Finished:
|
case QtcProcess::Finished:
|
||||||
break;
|
break;
|
||||||
@@ -621,7 +621,8 @@ Macros MsvcToolChain::msvcPredefinedMacros(const QStringList &cxxflags,
|
|||||||
if (language() == ProjectExplorer::Constants::C_LANGUAGE_ID)
|
if (language() == ProjectExplorer::Constants::C_LANGUAGE_ID)
|
||||||
arguments << QLatin1String("/TC");
|
arguments << QLatin1String("/TC");
|
||||||
arguments << toProcess << QLatin1String("/EP") << saver.filePath().toUserOutput();
|
arguments << toProcess << QLatin1String("/EP") << saver.filePath().toUserOutput();
|
||||||
cpp.runBlocking({binary, arguments});
|
cpp.setCommand({binary, arguments});
|
||||||
|
cpp.runBlocking();
|
||||||
if (cpp.result() != QtcProcess::Finished || cpp.exitCode() != 0)
|
if (cpp.result() != QtcProcess::Finished || cpp.exitCode() != 0)
|
||||||
return predefinedMacros;
|
return predefinedMacros;
|
||||||
|
|
||||||
@@ -1495,7 +1496,8 @@ static const MsvcToolChain *findMsvcToolChain(const QString &displayedVarsBat)
|
|||||||
static QVersionNumber clangClVersion(const QString &clangClPath)
|
static QVersionNumber clangClVersion(const QString &clangClPath)
|
||||||
{
|
{
|
||||||
SynchronousProcess clangClProcess;
|
SynchronousProcess clangClProcess;
|
||||||
clangClProcess.runBlocking({clangClPath, {"--version"}});
|
clangClProcess.setCommand({clangClPath, {"--version"}});
|
||||||
|
clangClProcess.runBlocking();
|
||||||
if (clangClProcess.result() != QtcProcess::Finished || clangClProcess.exitCode() != 0)
|
if (clangClProcess.result() != QtcProcess::Finished || clangClProcess.exitCode() != 0)
|
||||||
return {};
|
return {};
|
||||||
const QRegularExpressionMatch match = QRegularExpression(
|
const QRegularExpressionMatch match = QRegularExpression(
|
||||||
@@ -1721,6 +1723,8 @@ Macros ClangClToolChain::msvcPredefinedMacros(const QStringList &cxxflags,
|
|||||||
arguments.append(gccPredefinedMacrosOptions(language()));
|
arguments.append(gccPredefinedMacrosOptions(language()));
|
||||||
arguments.append("-");
|
arguments.append("-");
|
||||||
cpp.runBlocking({clangPath(), arguments});
|
cpp.runBlocking({clangPath(), arguments});
|
||||||
|
cpp.setCommand({compilerCommand(), arguments});
|
||||||
|
cpp.runBlocking();
|
||||||
if (cpp.result() != Utils::QtcProcess::Finished || cpp.exitCode() != 0) {
|
if (cpp.result() != Utils::QtcProcess::Finished || cpp.exitCode() != 0) {
|
||||||
// Show the warning but still parse the output.
|
// Show the warning but still parse the output.
|
||||||
QTC_CHECK(false && "clang-cl exited with non-zero code.");
|
QTC_CHECK(false && "clang-cl exited with non-zero code.");
|
||||||
@@ -2058,7 +2062,8 @@ Utils::optional<QString> MsvcToolChain::generateEnvironmentSettings(const Utils:
|
|||||||
qDebug() << "readEnvironmentSetting: " << call << cmd.toUserOutput()
|
qDebug() << "readEnvironmentSetting: " << call << cmd.toUserOutput()
|
||||||
<< " Env: " << runEnv.size();
|
<< " Env: " << runEnv.size();
|
||||||
run.setCodec(QTextCodec::codecForName("UTF-8"));
|
run.setCodec(QTextCodec::codecForName("UTF-8"));
|
||||||
run.runBlocking(cmd);
|
run.setCommand(cmd);
|
||||||
|
run.runBlocking();
|
||||||
|
|
||||||
if (run.result() != QtcProcess::Finished) {
|
if (run.result() != QtcProcess::Finished) {
|
||||||
const QString message = !run.stdErr().isEmpty() ? run.stdErr() : run.exitMessage();
|
const QString message = !run.stdErr().isEmpty() ? run.stdErr() : run.exitMessage();
|
||||||
|
|||||||
@@ -281,7 +281,8 @@ Interpreter::Interpreter(const FilePath &python, const QString &defaultName, boo
|
|||||||
SynchronousProcess pythonProcess;
|
SynchronousProcess pythonProcess;
|
||||||
pythonProcess.setProcessChannelMode(QProcess::MergedChannels);
|
pythonProcess.setProcessChannelMode(QProcess::MergedChannels);
|
||||||
pythonProcess.setTimeoutS(1);
|
pythonProcess.setTimeoutS(1);
|
||||||
pythonProcess.runBlocking({python, {"--version"}});
|
pythonProcess.setCommand({python, {"--version"}});
|
||||||
|
pythonProcess.runBlocking();
|
||||||
if (pythonProcess.result() == QtcProcess::Finished)
|
if (pythonProcess.result() == QtcProcess::Finished)
|
||||||
name = pythonProcess.stdOut().trimmed();
|
name = pythonProcess.stdOut().trimmed();
|
||||||
if (name.isEmpty())
|
if (name.isEmpty())
|
||||||
|
|||||||
@@ -86,8 +86,8 @@ static QString pythonName(const FilePath &pythonPath)
|
|||||||
if (name.isEmpty()) {
|
if (name.isEmpty()) {
|
||||||
SynchronousProcess pythonProcess;
|
SynchronousProcess pythonProcess;
|
||||||
pythonProcess.setTimeoutS(2);
|
pythonProcess.setTimeoutS(2);
|
||||||
const CommandLine pythonVersionCommand(pythonPath, {"--version"});
|
pythonProcess.setCommand({pythonPath, {"--version"}});
|
||||||
pythonProcess.runBlocking(pythonVersionCommand);
|
pythonProcess.runBlocking();
|
||||||
if (pythonProcess.result() != QtcProcess::Finished)
|
if (pythonProcess.result() != QtcProcess::Finished)
|
||||||
return {};
|
return {};
|
||||||
name = pythonProcess.allOutput().trimmed();
|
name = pythonProcess.allOutput().trimmed();
|
||||||
@@ -109,7 +109,8 @@ FilePath getPylsModulePath(CommandLine pylsCommand)
|
|||||||
Environment env = pythonProcess.environment();
|
Environment env = pythonProcess.environment();
|
||||||
env.set("PYTHONVERBOSE", "x");
|
env.set("PYTHONVERBOSE", "x");
|
||||||
pythonProcess.setEnvironment(env);
|
pythonProcess.setEnvironment(env);
|
||||||
pythonProcess.runBlocking(pylsCommand);
|
pythonProcess.setCommand(pylsCommand);
|
||||||
|
pythonProcess.runBlocking();
|
||||||
|
|
||||||
static const QString pylsInitPattern = "(.*)"
|
static const QString pylsInitPattern = "(.*)"
|
||||||
+ QRegularExpression::escape(
|
+ QRegularExpression::escape(
|
||||||
@@ -159,12 +160,13 @@ static PythonLanguageServerState checkPythonLanguageServer(const FilePath &pytho
|
|||||||
}
|
}
|
||||||
|
|
||||||
SynchronousProcess pythonProcess;
|
SynchronousProcess pythonProcess;
|
||||||
pythonProcess.runBlocking(pythonLShelpCommand);
|
pythonProcess.setCommand(pythonLShelpCommand);
|
||||||
|
pythonProcess.runBlocking();
|
||||||
if (pythonProcess.allOutput().contains("Python Language Server"))
|
if (pythonProcess.allOutput().contains("Python Language Server"))
|
||||||
return {PythonLanguageServerState::AlreadyInstalled, modulePath};
|
return {PythonLanguageServerState::AlreadyInstalled, modulePath};
|
||||||
|
|
||||||
const CommandLine pythonPipVersionCommand(python, {"-m", "pip", "-V"});
|
pythonProcess.setCommand({python, {"-m", "pip", "-V"}});
|
||||||
pythonProcess.runBlocking(pythonPipVersionCommand);
|
pythonProcess.runBlocking();
|
||||||
if (pythonProcess.allOutput().startsWith("pip "))
|
if (pythonProcess.allOutput().startsWith("pip "))
|
||||||
return {PythonLanguageServerState::CanBeInstalled, FilePath()};
|
return {PythonLanguageServerState::CanBeInstalled, FilePath()};
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -90,7 +90,8 @@ static FormatTask format(FormatTask task)
|
|||||||
options.replaceInStrings(QLatin1String("%file"), sourceFile.filePath().toString());
|
options.replaceInStrings(QLatin1String("%file"), sourceFile.filePath().toString());
|
||||||
SynchronousProcess process;
|
SynchronousProcess process;
|
||||||
process.setTimeoutS(5);
|
process.setTimeoutS(5);
|
||||||
process.runBlocking({executable, options});
|
process.setCommand({executable, options});
|
||||||
|
process.runBlocking();
|
||||||
if (process.result() != QtcProcess::Finished) {
|
if (process.result() != QtcProcess::Finished) {
|
||||||
task.error = QString(QT_TRANSLATE_NOOP("TextEditor", "Failed to format: %1."))
|
task.error = QString(QT_TRANSLATE_NOOP("TextEditor", "Failed to format: %1."))
|
||||||
.arg(process.exitMessage());
|
.arg(process.exitMessage());
|
||||||
|
|||||||
@@ -74,7 +74,8 @@ QString findFallbackDefinitionsLocation()
|
|||||||
for (auto &program : programs) {
|
for (auto &program : programs) {
|
||||||
Utils::SynchronousProcess process;
|
Utils::SynchronousProcess process;
|
||||||
process.setTimeoutS(5);
|
process.setTimeoutS(5);
|
||||||
process.runBlocking({program, {"--prefix"}});
|
process.setCommand({program, {"--prefix"}});
|
||||||
|
process.runBlocking();
|
||||||
if (process.result() == Utils::QtcProcess::Finished) {
|
if (process.result() == Utils::QtcProcess::Finished) {
|
||||||
QString output = process.stdOut();
|
QString output = process.stdOut();
|
||||||
output.remove(QLatin1Char('\n'));
|
output.remove(QLatin1Char('\n'));
|
||||||
|
|||||||
Reference in New Issue
Block a user