forked from qt-creator/qt-creator
Utils: Add CommandLine::toLocal()
And get rid of ProcessRunner::forceRunOnHost(). Change-Id: Ia2d0e526c59a474db0fb79d675b7acd0bf45f2ca Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -1598,6 +1598,17 @@ QStringList CommandLine::splitArguments() const
|
|||||||
return ProcessArgs::splitArgs(m_arguments, m_executable.osType());
|
return ProcessArgs::splitArgs(m_arguments, m_executable.osType());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CommandLine CommandLine::toLocal() const
|
||||||
|
{
|
||||||
|
if (m_executable.isLocal())
|
||||||
|
return *this;
|
||||||
|
|
||||||
|
QTC_CHECK(false); // TODO: Does it make sense?
|
||||||
|
CommandLine cmd = *this;
|
||||||
|
cmd.setExecutable(FilePath::fromString(m_executable.path()));
|
||||||
|
return cmd;
|
||||||
|
}
|
||||||
|
|
||||||
QTCREATOR_UTILS_EXPORT bool operator==(const CommandLine &first, const CommandLine &second)
|
QTCREATOR_UTILS_EXPORT bool operator==(const CommandLine &first, const CommandLine &second)
|
||||||
{
|
{
|
||||||
return first.m_executable == second.m_executable && first.m_arguments == second.m_arguments;
|
return first.m_executable == second.m_executable && first.m_arguments == second.m_arguments;
|
||||||
|
@@ -184,6 +184,7 @@ public:
|
|||||||
QStringList splitArguments() const;
|
QStringList splitArguments() const;
|
||||||
|
|
||||||
bool isEmpty() const { return m_executable.isEmpty(); }
|
bool isEmpty() const { return m_executable.isEmpty(); }
|
||||||
|
CommandLine toLocal() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend QTCREATOR_UTILS_EXPORT bool operator==(const CommandLine &first, const CommandLine &second);
|
friend QTCREATOR_UTILS_EXPORT bool operator==(const CommandLine &first, const CommandLine &second);
|
||||||
|
@@ -176,8 +176,7 @@ RunWorker *GdbServerProvider::targetRunner(RunControl *runControl) const
|
|||||||
worker->setId("BareMetalGdbServer");
|
worker->setId("BareMetalGdbServer");
|
||||||
// Baremetal's GDB servers are launched on the host, not on the target.
|
// Baremetal's GDB servers are launched on the host, not on the target.
|
||||||
worker->setStartModifier([worker, cmd = command()] {
|
worker->setStartModifier([worker, cmd = command()] {
|
||||||
worker->setCommandLine(cmd);
|
worker->setCommandLine(cmd.toLocal());
|
||||||
worker->forceRunOnHost();
|
|
||||||
});
|
});
|
||||||
return worker;
|
return worker;
|
||||||
}
|
}
|
||||||
|
@@ -1710,15 +1710,6 @@ void ProcessRunner::suppressDefaultStdOutHandling()
|
|||||||
d->m_suppressDefaultStdOutHandling = true;
|
d->m_suppressDefaultStdOutHandling = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProcessRunner::forceRunOnHost()
|
|
||||||
{
|
|
||||||
const FilePath executable = d->m_command.executable();
|
|
||||||
if (!executable.isLocal()) {
|
|
||||||
QTC_CHECK(false);
|
|
||||||
d->m_command.setExecutable(FilePath::fromString(executable.path()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// RunWorkerPrivate
|
// RunWorkerPrivate
|
||||||
|
|
||||||
RunWorkerPrivate::RunWorkerPrivate(RunWorker *runWorker, RunControl *runControl)
|
RunWorkerPrivate::RunWorkerPrivate(RunWorker *runWorker, RunControl *runControl)
|
||||||
|
@@ -295,7 +295,6 @@ public:
|
|||||||
void setProcessMode(Utils::ProcessMode processMode);
|
void setProcessMode(Utils::ProcessMode processMode);
|
||||||
|
|
||||||
void suppressDefaultStdOutHandling();
|
void suppressDefaultStdOutHandling();
|
||||||
void forceRunOnHost();
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void stdOutData(const QByteArray &data);
|
void stdOutData(const QByteArray &data);
|
||||||
|
@@ -213,8 +213,7 @@ LocalQmlPreviewSupportFactory::LocalQmlPreviewSupportFactory()
|
|||||||
}
|
}
|
||||||
|
|
||||||
cmd.addArg(qmlDebugLocalArguments(QmlPreviewServices, runControl->qmlChannel().path()));
|
cmd.addArg(qmlDebugLocalArguments(QmlPreviewServices, runControl->qmlChannel().path()));
|
||||||
worker->setCommandLine(cmd);
|
worker->setCommandLine(cmd.toLocal());
|
||||||
worker->forceRunOnHost();
|
|
||||||
});
|
});
|
||||||
return worker;
|
return worker;
|
||||||
});
|
});
|
||||||
|
@@ -154,8 +154,7 @@ RunWorker *createLocalQmlProfilerWorker(RunControl *runControl)
|
|||||||
const QString oldArgs = cmd.arguments();
|
const QString oldArgs = cmd.arguments();
|
||||||
cmd.setArguments(arguments);
|
cmd.setArguments(arguments);
|
||||||
cmd.addArgs(oldArgs, Utils::CommandLine::Raw);
|
cmd.addArgs(oldArgs, Utils::CommandLine::Raw);
|
||||||
worker->setCommandLine(cmd);
|
worker->setCommandLine(cmd.toLocal());
|
||||||
worker->forceRunOnHost();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return worker;
|
return worker;
|
||||||
|
Reference in New Issue
Block a user