forked from qt-creator/qt-creator
Analyzer: Remove IAnalizerTool::createStartParameters
That's a needless indirection. The run control factories know pretty well what kind of start parameters they need. Change-Id: Ia2d92beb6512cd99254fe22e215950cc67d5d0ed Reviewed-by: Aurindam Jana <aurindam.jana@digia.com> Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
This commit is contained in:
@@ -123,11 +123,6 @@ public:
|
|||||||
virtual bool canRun(ProjectExplorer::RunConfiguration *runConfiguration,
|
virtual bool canRun(ProjectExplorer::RunConfiguration *runConfiguration,
|
||||||
ProjectExplorer::RunMode mode) const = 0;
|
ProjectExplorer::RunMode mode) const = 0;
|
||||||
|
|
||||||
/// Create the start parameters for the run control factory
|
|
||||||
virtual AnalyzerStartParameters createStartParameters(
|
|
||||||
ProjectExplorer::RunConfiguration *runConfiguration,
|
|
||||||
ProjectExplorer::RunMode mode) const = 0;
|
|
||||||
|
|
||||||
virtual void startTool(StartMode mode) = 0;
|
virtual void startTool(StartMode mode) = 0;
|
||||||
|
|
||||||
/// Called when tools gets selected.
|
/// Called when tools gets selected.
|
||||||
|
@@ -37,11 +37,22 @@
|
|||||||
#include <analyzerbase/analyzerruncontrol.h>
|
#include <analyzerbase/analyzerruncontrol.h>
|
||||||
#include <analyzerbase/analyzersettings.h>
|
#include <analyzerbase/analyzersettings.h>
|
||||||
|
|
||||||
|
#include <debugger/debuggerrunconfigurationaspect.h>
|
||||||
|
|
||||||
|
#include <projectexplorer/environmentaspect.h>
|
||||||
#include <projectexplorer/kitinformation.h>
|
#include <projectexplorer/kitinformation.h>
|
||||||
|
#include <projectexplorer/localapplicationrunconfiguration.h>
|
||||||
|
#include <projectexplorer/projectexplorer.h>
|
||||||
|
#include <projectexplorer/project.h>
|
||||||
|
#include <projectexplorer/session.h>
|
||||||
#include <projectexplorer/target.h>
|
#include <projectexplorer/target.h>
|
||||||
|
|
||||||
|
#include <qmlprojectmanager/qmlprojectrunconfiguration.h>
|
||||||
|
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
|
||||||
|
#include <QTcpServer>
|
||||||
|
|
||||||
using namespace Analyzer;
|
using namespace Analyzer;
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
|
|
||||||
@@ -63,6 +74,51 @@ bool QmlProfilerRunControlFactory::canRun(RunConfiguration *runConfiguration, Ru
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static AnalyzerStartParameters createQmlProfilerStartParameters(RunConfiguration *runConfiguration)
|
||||||
|
{
|
||||||
|
AnalyzerStartParameters sp;
|
||||||
|
EnvironmentAspect *environment = runConfiguration->extraAspect<EnvironmentAspect>();
|
||||||
|
Debugger::DebuggerRunConfigurationAspect *debugger
|
||||||
|
= runConfiguration->extraAspect<Debugger::DebuggerRunConfigurationAspect>();
|
||||||
|
QTC_ASSERT(debugger, return sp);
|
||||||
|
|
||||||
|
// FIXME: This is only used to communicate the connParams settings.
|
||||||
|
if (QmlProjectManager::QmlProjectRunConfiguration *rc1 =
|
||||||
|
qobject_cast<QmlProjectManager::QmlProjectRunConfiguration *>(runConfiguration)) {
|
||||||
|
// This is a "plain" .qmlproject.
|
||||||
|
if (environment)
|
||||||
|
sp.environment = environment->environment();
|
||||||
|
sp.workingDirectory = rc1->workingDirectory();
|
||||||
|
sp.debuggee = rc1->observerPath();
|
||||||
|
sp.debuggeeArgs = rc1->viewerArguments();
|
||||||
|
sp.displayName = rc1->displayName();
|
||||||
|
} else if (LocalApplicationRunConfiguration *rc2 =
|
||||||
|
qobject_cast<LocalApplicationRunConfiguration *>(runConfiguration)) {
|
||||||
|
if (environment)
|
||||||
|
sp.environment = environment->environment();
|
||||||
|
sp.workingDirectory = rc2->workingDirectory();
|
||||||
|
sp.debuggee = rc2->executable();
|
||||||
|
sp.debuggeeArgs = rc2->commandLineArguments();
|
||||||
|
sp.displayName = rc2->displayName();
|
||||||
|
} else {
|
||||||
|
// What could that be?
|
||||||
|
QTC_ASSERT(false, return sp);
|
||||||
|
}
|
||||||
|
const IDevice::ConstPtr device = DeviceKitInformation::device(runConfiguration->target()->kit());
|
||||||
|
if (device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE) {
|
||||||
|
QTcpServer server;
|
||||||
|
if (!server.listen(QHostAddress::LocalHost) && !server.listen(QHostAddress::LocalHostIPv6)) {
|
||||||
|
qWarning() << "Cannot open port on host for QML profiling.";
|
||||||
|
return sp;
|
||||||
|
}
|
||||||
|
sp.analyzerHost = server.serverAddress().toString();
|
||||||
|
sp.analyzerPort = server.serverPort();
|
||||||
|
}
|
||||||
|
sp.startMode = StartQml;
|
||||||
|
sp.toolId = "QmlProfiler";
|
||||||
|
return sp;
|
||||||
|
}
|
||||||
|
|
||||||
RunControl *QmlProfilerRunControlFactory::create(RunConfiguration *runConfiguration, RunMode mode, QString *errorMessage)
|
RunControl *QmlProfilerRunControlFactory::create(RunConfiguration *runConfiguration, RunMode mode, QString *errorMessage)
|
||||||
{
|
{
|
||||||
IAnalyzerTool *tool = AnalyzerManager::toolFromRunMode(mode);
|
IAnalyzerTool *tool = AnalyzerManager::toolFromRunMode(mode);
|
||||||
@@ -74,12 +130,10 @@ RunControl *QmlProfilerRunControlFactory::create(RunConfiguration *runConfigurat
|
|||||||
|
|
||||||
QTC_ASSERT(canRun(runConfiguration, mode), return 0);
|
QTC_ASSERT(canRun(runConfiguration, mode), return 0);
|
||||||
|
|
||||||
AnalyzerStartParameters sp = tool->createStartParameters(runConfiguration, mode);
|
AnalyzerStartParameters sp = createQmlProfilerStartParameters(runConfiguration);
|
||||||
sp.toolId = tool->id();
|
|
||||||
|
|
||||||
// only desktop device is supported
|
// only desktop device is supported
|
||||||
const ProjectExplorer::IDevice::ConstPtr device =
|
const IDevice::ConstPtr device = DeviceKitInformation::device(runConfiguration->target()->kit());
|
||||||
ProjectExplorer::DeviceKitInformation::device(runConfiguration->target()->kit());
|
|
||||||
QTC_ASSERT(device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE, return 0);
|
QTC_ASSERT(device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE, return 0);
|
||||||
|
|
||||||
AnalyzerRunControl *rc = new AnalyzerRunControl(tool, sp, runConfiguration);
|
AnalyzerRunControl *rc = new AnalyzerRunControl(tool, sp, runConfiguration);
|
||||||
|
@@ -70,8 +70,6 @@
|
|||||||
#include <coreplugin/actionmanager/actionmanager.h>
|
#include <coreplugin/actionmanager/actionmanager.h>
|
||||||
#include <coreplugin/actionmanager/actioncontainer.h>
|
#include <coreplugin/actionmanager/actioncontainer.h>
|
||||||
|
|
||||||
#include <debugger/debuggerrunconfigurationaspect.h>
|
|
||||||
|
|
||||||
#include <qtsupport/qtkitinformation.h>
|
#include <qtsupport/qtkitinformation.h>
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
@@ -285,54 +283,6 @@ static QString sysroot(RunConfiguration *runConfig)
|
|||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
AnalyzerStartParameters QmlProfilerTool::createStartParameters(RunConfiguration *runConfiguration, RunMode mode) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(mode);
|
|
||||||
|
|
||||||
AnalyzerStartParameters sp;
|
|
||||||
ProjectExplorer::EnvironmentAspect *environment
|
|
||||||
= runConfiguration->extraAspect<ProjectExplorer::EnvironmentAspect>();
|
|
||||||
Debugger::DebuggerRunConfigurationAspect *debugger
|
|
||||||
= runConfiguration->extraAspect<Debugger::DebuggerRunConfigurationAspect>();
|
|
||||||
QTC_ASSERT(debugger, return sp);
|
|
||||||
|
|
||||||
// FIXME: This is only used to communicate the connParams settings.
|
|
||||||
if (QmlProjectRunConfiguration *rc1 =
|
|
||||||
qobject_cast<QmlProjectRunConfiguration *>(runConfiguration)) {
|
|
||||||
// This is a "plain" .qmlproject.
|
|
||||||
if (environment)
|
|
||||||
sp.environment = environment->environment();
|
|
||||||
sp.workingDirectory = rc1->workingDirectory();
|
|
||||||
sp.debuggee = rc1->observerPath();
|
|
||||||
sp.debuggeeArgs = rc1->viewerArguments();
|
|
||||||
sp.displayName = rc1->displayName();
|
|
||||||
} else if (LocalApplicationRunConfiguration *rc2 =
|
|
||||||
qobject_cast<LocalApplicationRunConfiguration *>(runConfiguration)) {
|
|
||||||
if (environment)
|
|
||||||
sp.environment = environment->environment();
|
|
||||||
sp.workingDirectory = rc2->workingDirectory();
|
|
||||||
sp.debuggee = rc2->executable();
|
|
||||||
sp.debuggeeArgs = rc2->commandLineArguments();
|
|
||||||
sp.displayName = rc2->displayName();
|
|
||||||
} else {
|
|
||||||
// What could that be?
|
|
||||||
QTC_ASSERT(false, return sp);
|
|
||||||
}
|
|
||||||
const ProjectExplorer::IDevice::ConstPtr device =
|
|
||||||
ProjectExplorer::DeviceKitInformation::device(runConfiguration->target()->kit());
|
|
||||||
if (device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE) {
|
|
||||||
QTcpServer server;
|
|
||||||
if (!server.listen(QHostAddress::LocalHost) && !server.listen(QHostAddress::LocalHostIPv6)) {
|
|
||||||
qWarning() << "Cannot open port on host for QML profiling.";
|
|
||||||
return sp;
|
|
||||||
}
|
|
||||||
sp.analyzerHost = server.serverAddress().toString();
|
|
||||||
sp.analyzerPort = server.serverPort();
|
|
||||||
}
|
|
||||||
sp.startMode = StartQml;
|
|
||||||
return sp;
|
|
||||||
}
|
|
||||||
|
|
||||||
QWidget *QmlProfilerTool::createWidgets()
|
QWidget *QmlProfilerTool::createWidgets()
|
||||||
{
|
{
|
||||||
QTC_ASSERT(!d->m_viewContainer, return 0);
|
QTC_ASSERT(!d->m_viewContainer, return 0);
|
||||||
|
@@ -62,10 +62,6 @@ public:
|
|||||||
bool canRun(ProjectExplorer::RunConfiguration *runConfiguration,
|
bool canRun(ProjectExplorer::RunConfiguration *runConfiguration,
|
||||||
ProjectExplorer::RunMode mode) const;
|
ProjectExplorer::RunMode mode) const;
|
||||||
|
|
||||||
Analyzer::AnalyzerStartParameters createStartParameters(
|
|
||||||
ProjectExplorer::RunConfiguration *runConfiguration,
|
|
||||||
ProjectExplorer::RunMode mode) const;
|
|
||||||
|
|
||||||
QWidget *createWidgets();
|
QWidget *createWidgets();
|
||||||
void startTool(Analyzer::StartMode mode);
|
void startTool(Analyzer::StartMode mode);
|
||||||
|
|
||||||
|
@@ -35,8 +35,19 @@
|
|||||||
#include <analyzerbase/analyzerruncontrol.h>
|
#include <analyzerbase/analyzerruncontrol.h>
|
||||||
#include <analyzerbase/analyzersettings.h>
|
#include <analyzerbase/analyzersettings.h>
|
||||||
|
|
||||||
|
#include <remotelinux/remotelinuxrunconfiguration.h>
|
||||||
|
|
||||||
|
#include <debugger/debuggerrunconfigurationaspect.h>
|
||||||
|
#include <projectexplorer/environmentaspect.h>
|
||||||
|
#include <projectexplorer/localapplicationrunconfiguration.h>
|
||||||
|
#include <projectexplorer/kitinformation.h>
|
||||||
|
#include <projectexplorer/projectexplorer.h>
|
||||||
|
#include <projectexplorer/target.h>
|
||||||
|
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
|
|
||||||
|
#include <QTcpServer>
|
||||||
|
|
||||||
using namespace Analyzer;
|
using namespace Analyzer;
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
|
|
||||||
@@ -58,6 +69,45 @@ bool ValgrindRunControlFactory::canRun(RunConfiguration *runConfiguration, RunMo
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static AnalyzerStartParameters createValgrindStartParameters(RunConfiguration *runConfiguration)
|
||||||
|
{
|
||||||
|
Analyzer::AnalyzerStartParameters sp;
|
||||||
|
sp.displayName = runConfiguration->displayName();
|
||||||
|
if (LocalApplicationRunConfiguration *rc1 =
|
||||||
|
qobject_cast<LocalApplicationRunConfiguration *>(runConfiguration)) {
|
||||||
|
EnvironmentAspect *aspect = runConfiguration->extraAspect<EnvironmentAspect>();
|
||||||
|
if (aspect)
|
||||||
|
sp.environment = aspect->environment();
|
||||||
|
sp.workingDirectory = rc1->workingDirectory();
|
||||||
|
sp.debuggee = rc1->executable();
|
||||||
|
sp.debuggeeArgs = rc1->commandLineArguments();
|
||||||
|
const IDevice::ConstPtr device =
|
||||||
|
DeviceKitInformation::device(runConfiguration->target()->kit());
|
||||||
|
QTC_ASSERT(device, return sp);
|
||||||
|
QTC_ASSERT(device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE, return sp);
|
||||||
|
QTcpServer server;
|
||||||
|
if (!server.listen(QHostAddress::LocalHost) && !server.listen(QHostAddress::LocalHostIPv6)) {
|
||||||
|
qWarning() << "Cannot open port on host for profiling.";
|
||||||
|
return sp;
|
||||||
|
}
|
||||||
|
sp.connParams.host = server.serverAddress().toString();
|
||||||
|
sp.connParams.port = server.serverPort();
|
||||||
|
sp.startMode = Analyzer::StartLocal;
|
||||||
|
} else if (RemoteLinux::RemoteLinuxRunConfiguration *rc2 =
|
||||||
|
qobject_cast<RemoteLinux::RemoteLinuxRunConfiguration *>(runConfiguration)) {
|
||||||
|
sp.startMode = Analyzer::StartRemote;
|
||||||
|
sp.debuggee = rc2->remoteExecutableFilePath();
|
||||||
|
sp.connParams = DeviceKitInformation::device(rc2->target()->kit())->sshParameters();
|
||||||
|
sp.analyzerCmdPrefix = rc2->commandPrefix();
|
||||||
|
sp.debuggeeArgs = rc2->arguments();
|
||||||
|
} else {
|
||||||
|
// Might be S60DeviceRunfiguration, or something else ...
|
||||||
|
//sp.startMode = StartRemote;
|
||||||
|
sp.startMode = Analyzer::StartRemote;
|
||||||
|
}
|
||||||
|
return sp;
|
||||||
|
}
|
||||||
|
|
||||||
RunControl *ValgrindRunControlFactory::create(RunConfiguration *runConfiguration, RunMode mode, QString *errorMessage)
|
RunControl *ValgrindRunControlFactory::create(RunConfiguration *runConfiguration, RunMode mode, QString *errorMessage)
|
||||||
{
|
{
|
||||||
IAnalyzerTool *tool = AnalyzerManager::toolFromRunMode(mode);
|
IAnalyzerTool *tool = AnalyzerManager::toolFromRunMode(mode);
|
||||||
@@ -69,7 +119,7 @@ RunControl *ValgrindRunControlFactory::create(RunConfiguration *runConfiguration
|
|||||||
|
|
||||||
QTC_ASSERT(canRun(runConfiguration, mode), return 0);
|
QTC_ASSERT(canRun(runConfiguration, mode), return 0);
|
||||||
|
|
||||||
AnalyzerStartParameters sp = tool->createStartParameters(runConfiguration, mode);
|
AnalyzerStartParameters sp = createValgrindStartParameters(runConfiguration);
|
||||||
sp.toolId = tool->id();
|
sp.toolId = tool->id();
|
||||||
|
|
||||||
AnalyzerRunControl *rc = new AnalyzerRunControl(tool, sp, runConfiguration);
|
AnalyzerRunControl *rc = new AnalyzerRunControl(tool, sp, runConfiguration);
|
||||||
|
@@ -29,21 +29,7 @@
|
|||||||
|
|
||||||
#include "valgrindtool.h"
|
#include "valgrindtool.h"
|
||||||
|
|
||||||
#include <remotelinux/remotelinuxrunconfiguration.h>
|
|
||||||
|
|
||||||
#include <debugger/debuggerrunconfigurationaspect.h>
|
|
||||||
#include <projectexplorer/environmentaspect.h>
|
|
||||||
#include <projectexplorer/localapplicationrunconfiguration.h>
|
|
||||||
#include <projectexplorer/kitinformation.h>
|
|
||||||
#include <projectexplorer/projectexplorer.h>
|
|
||||||
#include <projectexplorer/target.h>
|
|
||||||
|
|
||||||
#include <utils/qtcassert.h>
|
|
||||||
|
|
||||||
#include <QTcpServer>
|
|
||||||
|
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
using namespace RemoteLinux;
|
|
||||||
|
|
||||||
namespace Valgrind {
|
namespace Valgrind {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
@@ -58,47 +44,5 @@ bool ValgrindTool::canRun(RunConfiguration *, RunMode mode) const
|
|||||||
return mode == runMode();
|
return mode == runMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
Analyzer::AnalyzerStartParameters ValgrindTool::createStartParameters(
|
|
||||||
RunConfiguration *runConfiguration, RunMode mode) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(mode);
|
|
||||||
|
|
||||||
Analyzer::AnalyzerStartParameters sp;
|
|
||||||
sp.displayName = runConfiguration->displayName();
|
|
||||||
if (LocalApplicationRunConfiguration *rc1 =
|
|
||||||
qobject_cast<LocalApplicationRunConfiguration *>(runConfiguration)) {
|
|
||||||
EnvironmentAspect *aspect = runConfiguration->extraAspect<EnvironmentAspect>();
|
|
||||||
if (aspect)
|
|
||||||
sp.environment = aspect->environment();
|
|
||||||
sp.workingDirectory = rc1->workingDirectory();
|
|
||||||
sp.debuggee = rc1->executable();
|
|
||||||
sp.debuggeeArgs = rc1->commandLineArguments();
|
|
||||||
const IDevice::ConstPtr device =
|
|
||||||
DeviceKitInformation::device(runConfiguration->target()->kit());
|
|
||||||
QTC_ASSERT(device, return sp);
|
|
||||||
QTC_ASSERT(device->type() == Constants::DESKTOP_DEVICE_TYPE, return sp);
|
|
||||||
QTcpServer server;
|
|
||||||
if (!server.listen(QHostAddress::LocalHost) && !server.listen(QHostAddress::LocalHostIPv6)) {
|
|
||||||
qWarning() << "Cannot open port on host for profiling.";
|
|
||||||
return sp;
|
|
||||||
}
|
|
||||||
sp.connParams.host = server.serverAddress().toString();
|
|
||||||
sp.connParams.port = server.serverPort();
|
|
||||||
sp.startMode = Analyzer::StartLocal;
|
|
||||||
} else if (RemoteLinuxRunConfiguration *rc2 =
|
|
||||||
qobject_cast<RemoteLinuxRunConfiguration *>(runConfiguration)) {
|
|
||||||
sp.startMode = Analyzer::StartRemote;
|
|
||||||
sp.debuggee = rc2->remoteExecutableFilePath();
|
|
||||||
sp.connParams = DeviceKitInformation::device(rc2->target()->kit())->sshParameters();
|
|
||||||
sp.analyzerCmdPrefix = rc2->commandPrefix();
|
|
||||||
sp.debuggeeArgs = rc2->arguments();
|
|
||||||
} else {
|
|
||||||
// Might be S60DeviceRunfiguration, or something else ...
|
|
||||||
//sp.startMode = StartRemote;
|
|
||||||
sp.startMode = Analyzer::StartRemote;
|
|
||||||
}
|
|
||||||
return sp;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
} // namespace Valgrind
|
} // namespace Valgrind
|
||||||
|
@@ -43,10 +43,6 @@ public:
|
|||||||
|
|
||||||
bool canRun(ProjectExplorer::RunConfiguration *runConfiguration,
|
bool canRun(ProjectExplorer::RunConfiguration *runConfiguration,
|
||||||
ProjectExplorer::RunMode mode) const;
|
ProjectExplorer::RunMode mode) const;
|
||||||
|
|
||||||
Analyzer::AnalyzerStartParameters createStartParameters(
|
|
||||||
ProjectExplorer::RunConfiguration *runConfiguration,
|
|
||||||
ProjectExplorer::RunMode mode) const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
Reference in New Issue
Block a user