forked from qt-creator/qt-creator
ProjectExplorer: Simplify standard run control construction
A lot of the target-and-tool specific run controls nowadays have something like a single main RunWorker. This patch removes the need to have user-implemented RunControlFactories in those cases and adjusts local run, remote linux, python and nim to take advantage. There's more potential use downstream. Change-Id: Ie2d2f839b8be1fad2be3b79e21de3c0e475d88cf Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -29,7 +29,6 @@ HEADERS += \
|
|||||||
project/nimcompilerbuildstepfactory.h \
|
project/nimcompilerbuildstepfactory.h \
|
||||||
project/nimcompilercleanstepfactory.h \
|
project/nimcompilercleanstepfactory.h \
|
||||||
project/nimbuildconfigurationwidget.h \
|
project/nimbuildconfigurationwidget.h \
|
||||||
project/nimruncontrolfactory.h \
|
|
||||||
editor/nimeditorfactory.h \
|
editor/nimeditorfactory.h \
|
||||||
settings/nimcodestylesettingspage.h \
|
settings/nimcodestylesettingspage.h \
|
||||||
settings/nimcodestylepreferencesfactory.h \
|
settings/nimcodestylepreferencesfactory.h \
|
||||||
@@ -57,7 +56,6 @@ SOURCES += \
|
|||||||
project/nimcompilerbuildstepfactory.cpp \
|
project/nimcompilerbuildstepfactory.cpp \
|
||||||
project/nimcompilercleanstepfactory.cpp \
|
project/nimcompilercleanstepfactory.cpp \
|
||||||
project/nimbuildconfigurationwidget.cpp \
|
project/nimbuildconfigurationwidget.cpp \
|
||||||
project/nimruncontrolfactory.cpp \
|
|
||||||
editor/nimeditorfactory.cpp \
|
editor/nimeditorfactory.cpp \
|
||||||
settings/nimcodestylesettingspage.cpp \
|
settings/nimcodestylesettingspage.cpp \
|
||||||
settings/nimcodestylepreferencesfactory.cpp \
|
settings/nimcodestylepreferencesfactory.cpp \
|
||||||
|
|||||||
@@ -49,7 +49,6 @@ QtcPlugin {
|
|||||||
"nimrunconfiguration.h", "nimrunconfiguration.cpp",
|
"nimrunconfiguration.h", "nimrunconfiguration.cpp",
|
||||||
"nimrunconfigurationfactory.h", "nimrunconfigurationfactory.cpp",
|
"nimrunconfigurationfactory.h", "nimrunconfigurationfactory.cpp",
|
||||||
"nimrunconfigurationwidget.h", "nimrunconfigurationwidget.cpp",
|
"nimrunconfigurationwidget.h", "nimrunconfigurationwidget.cpp",
|
||||||
"nimruncontrolfactory.h", "nimruncontrolfactory.cpp",
|
|
||||||
"nimtoolchain.h", "nimtoolchain.cpp",
|
"nimtoolchain.h", "nimtoolchain.cpp",
|
||||||
"nimtoolchainfactory.h", "nimtoolchainfactory.cpp",
|
"nimtoolchainfactory.h", "nimtoolchainfactory.cpp",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -32,8 +32,8 @@
|
|||||||
#include "project/nimcompilerbuildstepfactory.h"
|
#include "project/nimcompilerbuildstepfactory.h"
|
||||||
#include "project/nimcompilercleanstepfactory.h"
|
#include "project/nimcompilercleanstepfactory.h"
|
||||||
#include "project/nimproject.h"
|
#include "project/nimproject.h"
|
||||||
|
#include "project/nimrunconfiguration.h"
|
||||||
#include "project/nimrunconfigurationfactory.h"
|
#include "project/nimrunconfigurationfactory.h"
|
||||||
#include "project/nimruncontrolfactory.h"
|
|
||||||
#include "project/nimtoolchainfactory.h"
|
#include "project/nimtoolchainfactory.h"
|
||||||
#include "settings/nimcodestylepreferencesfactory.h"
|
#include "settings/nimcodestylepreferencesfactory.h"
|
||||||
#include "settings/nimcodestylesettingspage.h"
|
#include "settings/nimcodestylesettingspage.h"
|
||||||
@@ -42,11 +42,13 @@
|
|||||||
#include <coreplugin/fileiconprovider.h>
|
#include <coreplugin/fileiconprovider.h>
|
||||||
#include <projectexplorer/projectmanager.h>
|
#include <projectexplorer/projectmanager.h>
|
||||||
#include <projectexplorer/toolchainmanager.h>
|
#include <projectexplorer/toolchainmanager.h>
|
||||||
|
#include <projectexplorer/runconfiguration.h>
|
||||||
#include <texteditor/snippets/snippetprovider.h>
|
#include <texteditor/snippets/snippetprovider.h>
|
||||||
|
|
||||||
#include <QtPlugin>
|
#include <QtPlugin>
|
||||||
|
|
||||||
using namespace Utils;
|
using namespace Utils;
|
||||||
|
using namespace ProjectExplorer;
|
||||||
|
|
||||||
namespace Nim {
|
namespace Nim {
|
||||||
|
|
||||||
@@ -69,13 +71,15 @@ bool NimPlugin::initialize(const QStringList &arguments, QString *errorMessage)
|
|||||||
|
|
||||||
ProjectExplorer::ToolChainManager::registerLanguage(Constants::C_NIMLANGUAGE_ID, Constants::C_NIMLANGUAGE_NAME);
|
ProjectExplorer::ToolChainManager::registerLanguage(Constants::C_NIMLANGUAGE_ID, Constants::C_NIMLANGUAGE_NAME);
|
||||||
|
|
||||||
|
RunControl::registerWorker<NimRunConfiguration, SimpleTargetRunner>
|
||||||
|
(ProjectExplorer::Constants::NORMAL_RUN_MODE);
|
||||||
|
|
||||||
addAutoReleasedObject(new NimSettings);
|
addAutoReleasedObject(new NimSettings);
|
||||||
addAutoReleasedObject(new NimEditorFactory);
|
addAutoReleasedObject(new NimEditorFactory);
|
||||||
addAutoReleasedObject(new NimBuildConfigurationFactory);
|
addAutoReleasedObject(new NimBuildConfigurationFactory);
|
||||||
addAutoReleasedObject(new NimRunConfigurationFactory);
|
addAutoReleasedObject(new NimRunConfigurationFactory);
|
||||||
addAutoReleasedObject(new NimCompilerBuildStepFactory);
|
addAutoReleasedObject(new NimCompilerBuildStepFactory);
|
||||||
addAutoReleasedObject(new NimCompilerCleanStepFactory);
|
addAutoReleasedObject(new NimCompilerCleanStepFactory);
|
||||||
addAutoReleasedObject(new NimRunControlFactory);
|
|
||||||
addAutoReleasedObject(new NimCodeStyleSettingsPage);
|
addAutoReleasedObject(new NimCodeStyleSettingsPage);
|
||||||
addAutoReleasedObject(new NimCodeStylePreferencesFactory);
|
addAutoReleasedObject(new NimCodeStylePreferencesFactory);
|
||||||
addAutoReleasedObject(new NimToolChainFactory);
|
addAutoReleasedObject(new NimToolChainFactory);
|
||||||
|
|||||||
@@ -1,49 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) Filippo Cucchetto <filippocucchetto@gmail.com>
|
|
||||||
** Contact: http://www.qt.io/licensing
|
|
||||||
**
|
|
||||||
** This file is part of Qt Creator.
|
|
||||||
**
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and The Qt Company. For licensing terms
|
|
||||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
||||||
** information use the contact form at https://www.qt.io/contact-us.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3 as published by the Free Software
|
|
||||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
||||||
** included in the packaging of this file. Please review the following
|
|
||||||
** information to ensure the GNU General Public License requirements will
|
|
||||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "nimruncontrolfactory.h"
|
|
||||||
#include "nimrunconfiguration.h"
|
|
||||||
|
|
||||||
using namespace ProjectExplorer;
|
|
||||||
|
|
||||||
namespace Nim {
|
|
||||||
|
|
||||||
bool NimRunControlFactory::canRun(ProjectExplorer::RunConfiguration *runConfiguration, Core::Id mode) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(mode)
|
|
||||||
return dynamic_cast<NimRunConfiguration *>(runConfiguration);
|
|
||||||
}
|
|
||||||
|
|
||||||
RunControl *NimRunControlFactory::create(RunConfiguration *runConfiguration, Core::Id mode, QString *errorMessage)
|
|
||||||
{
|
|
||||||
Q_UNUSED(errorMessage)
|
|
||||||
QTC_ASSERT(canRun(runConfiguration, mode), return 0);
|
|
||||||
auto runControl = new RunControl(runConfiguration, mode);
|
|
||||||
(void) new SimpleTargetRunner(runControl);
|
|
||||||
return runControl;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // Nim
|
|
||||||
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) Filippo Cucchetto <filippocucchetto@gmail.com>
|
|
||||||
** Contact: http://www.qt.io/licensing
|
|
||||||
**
|
|
||||||
** This file is part of Qt Creator.
|
|
||||||
**
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and The Qt Company. For licensing terms
|
|
||||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
||||||
** information use the contact form at https://www.qt.io/contact-us.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3 as published by the Free Software
|
|
||||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
||||||
** included in the packaging of this file. Please review the following
|
|
||||||
** information to ensure the GNU General Public License requirements will
|
|
||||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <projectexplorer/runconfiguration.h>
|
|
||||||
|
|
||||||
namespace Nim {
|
|
||||||
|
|
||||||
class NimRunControlFactory : public ProjectExplorer::IRunControlFactory
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
bool canRun(ProjectExplorer::RunConfiguration *runConfiguration, Core::Id mode) const override;
|
|
||||||
ProjectExplorer::RunControl *create(ProjectExplorer::RunConfiguration *runConfiguration, Core::Id mode, QString *errorMessage) override;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of Qt Creator.
|
|
||||||
**
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and The Qt Company. For licensing terms
|
|
||||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
||||||
** information use the contact form at https://www.qt.io/contact-us.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3 as published by the Free Software
|
|
||||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
||||||
** included in the packaging of this file. Please review the following
|
|
||||||
** information to ensure the GNU General Public License requirements will
|
|
||||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "localapplicationruncontrol.h"
|
|
||||||
#include "runnables.h"
|
|
||||||
|
|
||||||
#include <projectexplorer/projectexplorerconstants.h>
|
|
||||||
#include <projectexplorer/kitinformation.h>
|
|
||||||
#include <projectexplorer/target.h>
|
|
||||||
|
|
||||||
#include <utils/utilsicons.h>
|
|
||||||
#include <utils/qtcassert.h>
|
|
||||||
|
|
||||||
using namespace Utils;
|
|
||||||
|
|
||||||
namespace ProjectExplorer {
|
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
static bool isLocal(RunConfiguration *runConfiguration)
|
|
||||||
{
|
|
||||||
Target *target = runConfiguration ? runConfiguration->target() : nullptr;
|
|
||||||
Kit *kit = target ? target->kit() : nullptr;
|
|
||||||
return DeviceTypeKitInformation::deviceTypeId(kit) == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool LocalApplicationRunControlFactory::canRun(RunConfiguration *runConfiguration, Core::Id mode) const
|
|
||||||
{
|
|
||||||
if (mode != Constants::NORMAL_RUN_MODE)
|
|
||||||
return false;
|
|
||||||
const Runnable runnable = runConfiguration->runnable();
|
|
||||||
if (!runnable.is<StandardRunnable>())
|
|
||||||
return false;
|
|
||||||
const IDevice::ConstPtr device = runnable.as<StandardRunnable>().device;
|
|
||||||
if (device && device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE)
|
|
||||||
return true;
|
|
||||||
return isLocal(runConfiguration);
|
|
||||||
}
|
|
||||||
|
|
||||||
RunControl *LocalApplicationRunControlFactory::create(RunConfiguration *runConfiguration, Core::Id mode, QString *errorMessage)
|
|
||||||
{
|
|
||||||
Q_UNUSED(errorMessage)
|
|
||||||
auto runControl = new RunControl(runConfiguration, mode);
|
|
||||||
(void) new SimpleTargetRunner(runControl);
|
|
||||||
return runControl;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace Internal
|
|
||||||
} // namespace ProjectExplorer
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of Qt Creator.
|
|
||||||
**
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and The Qt Company. For licensing terms
|
|
||||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
||||||
** information use the contact form at https://www.qt.io/contact-us.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3 as published by the Free Software
|
|
||||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
||||||
** included in the packaging of this file. Please review the following
|
|
||||||
** information to ensure the GNU General Public License requirements will
|
|
||||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "runconfiguration.h"
|
|
||||||
|
|
||||||
namespace ProjectExplorer {
|
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
class LocalApplicationRunControlFactory : public IRunControlFactory
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
bool canRun(RunConfiguration *runConfiguration, Core::Id mode) const override;
|
|
||||||
RunControl *create(RunConfiguration *runConfiguration, Core::Id mode, QString *errorMessage) override;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace Internal
|
|
||||||
} // namespace ProjectExplorer
|
|
||||||
@@ -52,7 +52,6 @@
|
|||||||
#include "copytaskhandler.h"
|
#include "copytaskhandler.h"
|
||||||
#include "showineditortaskhandler.h"
|
#include "showineditortaskhandler.h"
|
||||||
#include "vcsannotatetaskhandler.h"
|
#include "vcsannotatetaskhandler.h"
|
||||||
#include "localapplicationruncontrol.h"
|
|
||||||
#include "allprojectsfilter.h"
|
#include "allprojectsfilter.h"
|
||||||
#include "allprojectsfind.h"
|
#include "allprojectsfind.h"
|
||||||
#include "buildmanager.h"
|
#include "buildmanager.h"
|
||||||
@@ -644,7 +643,19 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
|
|||||||
addAutoReleasedObject(new AllProjectsFind);
|
addAutoReleasedObject(new AllProjectsFind);
|
||||||
addAutoReleasedObject(new CurrentProjectFind);
|
addAutoReleasedObject(new CurrentProjectFind);
|
||||||
|
|
||||||
addAutoReleasedObject(new LocalApplicationRunControlFactory);
|
auto constraint = [](RunConfiguration *runConfiguration) {
|
||||||
|
const Runnable runnable = runConfiguration->runnable();
|
||||||
|
if (!runnable.is<StandardRunnable>())
|
||||||
|
return false;
|
||||||
|
const IDevice::ConstPtr device = runnable.as<StandardRunnable>().device;
|
||||||
|
if (device && device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE)
|
||||||
|
return true;
|
||||||
|
Target *target = runConfiguration ? runConfiguration->target() : nullptr;
|
||||||
|
Kit *kit = target ? target->kit() : nullptr;
|
||||||
|
return DeviceTypeKitInformation::deviceTypeId(kit) == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE;
|
||||||
|
};
|
||||||
|
RunControl::registerWorker<SimpleTargetRunner>(Constants::NORMAL_RUN_MODE, constraint);
|
||||||
|
|
||||||
addAutoReleasedObject(new CustomExecutableRunConfigurationFactory);
|
addAutoReleasedObject(new CustomExecutableRunConfigurationFactory);
|
||||||
|
|
||||||
addAutoReleasedObject(new ProjectFileWizardExtension);
|
addAutoReleasedObject(new ProjectFileWizardExtension);
|
||||||
@@ -1972,12 +1983,30 @@ void ProjectExplorerPluginPrivate::buildStateChanged(Project * pro)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NBS TODO implement more than one runner
|
// NBS TODO implement more than one runner
|
||||||
static IRunControlFactory *findRunControlFactory(RunConfiguration *config, Core::Id mode)
|
using RunControlFactory = std::function<RunControl *(RunConfiguration *, Core::Id, QString *)>;
|
||||||
|
|
||||||
|
static RunControlFactory findRunControlFactory(RunConfiguration *config, Core::Id mode)
|
||||||
{
|
{
|
||||||
return ExtensionSystem::PluginManager::getObject<IRunControlFactory>(
|
if (auto producer = RunControl::producer(config, mode)) {
|
||||||
|
return [producer, config](RunConfiguration *rc, Id runMode, QString *) {
|
||||||
|
auto runControl = new RunControl(rc, runMode);
|
||||||
|
(void) producer(runControl);
|
||||||
|
return runControl;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
IRunControlFactory *runControlFactory = ExtensionSystem::PluginManager::getObject<IRunControlFactory>(
|
||||||
[&config, &mode](IRunControlFactory *factory) {
|
[&config, &mode](IRunControlFactory *factory) {
|
||||||
return factory->canRun(config, mode);
|
return factory->canRun(config, mode);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (runControlFactory) {
|
||||||
|
return [runControlFactory](RunConfiguration *rc, Id runMode, QString *errorMessage) {
|
||||||
|
return runControlFactory->create(rc, runMode, errorMessage);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProjectExplorerPluginPrivate::executeRunConfiguration(RunConfiguration *runConfiguration, Core::Id runMode)
|
void ProjectExplorerPluginPrivate::executeRunConfiguration(RunConfiguration *runConfiguration, Core::Id runMode)
|
||||||
@@ -1997,11 +2026,11 @@ void ProjectExplorerPluginPrivate::executeRunConfiguration(RunConfiguration *run
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IRunControlFactory *runControlFactory = findRunControlFactory(runConfiguration, runMode)) {
|
if (RunControlFactory runControlFactory = findRunControlFactory(runConfiguration, runMode)) {
|
||||||
emit m_instance->aboutToExecuteProject(runConfiguration->target()->project(), runMode);
|
emit m_instance->aboutToExecuteProject(runConfiguration->target()->project(), runMode);
|
||||||
|
|
||||||
QString errorMessage;
|
QString errorMessage;
|
||||||
RunControl *control = runControlFactory->create(runConfiguration, runMode, &errorMessage);
|
RunControl *control = runControlFactory(runConfiguration, runMode, &errorMessage);
|
||||||
if (!control) {
|
if (!control) {
|
||||||
m_instance->showRunErrorMessage(errorMessage);
|
m_instance->showRunErrorMessage(errorMessage);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -99,7 +99,6 @@ HEADERS += projectexplorer.h \
|
|||||||
processparameters.h \
|
processparameters.h \
|
||||||
abstractprocessstep.h \
|
abstractprocessstep.h \
|
||||||
taskhub.h \
|
taskhub.h \
|
||||||
localapplicationruncontrol.h \
|
|
||||||
headerpath.h \
|
headerpath.h \
|
||||||
gcctoolchainfactories.h \
|
gcctoolchainfactories.h \
|
||||||
appoutputpane.h \
|
appoutputpane.h \
|
||||||
@@ -243,7 +242,6 @@ SOURCES += projectexplorer.cpp \
|
|||||||
buildconfigurationmodel.cpp \
|
buildconfigurationmodel.cpp \
|
||||||
taskhub.cpp \
|
taskhub.cpp \
|
||||||
processparameters.cpp \
|
processparameters.cpp \
|
||||||
localapplicationruncontrol.cpp \
|
|
||||||
appoutputpane.cpp \
|
appoutputpane.cpp \
|
||||||
codestylesettingspropertiespage.cpp \
|
codestylesettingspropertiespage.cpp \
|
||||||
settingsaccessor.cpp \
|
settingsaccessor.cpp \
|
||||||
|
|||||||
@@ -94,7 +94,6 @@ Project {
|
|||||||
"kitoptionspage.cpp", "kitoptionspage.h",
|
"kitoptionspage.cpp", "kitoptionspage.h",
|
||||||
"ldparser.cpp", "ldparser.h",
|
"ldparser.cpp", "ldparser.h",
|
||||||
"linuxiccparser.cpp", "linuxiccparser.h",
|
"linuxiccparser.cpp", "linuxiccparser.h",
|
||||||
"localapplicationruncontrol.cpp", "localapplicationruncontrol.h",
|
|
||||||
"localenvironmentaspect.cpp", "localenvironmentaspect.h",
|
"localenvironmentaspect.cpp", "localenvironmentaspect.h",
|
||||||
"miniprojecttargetselector.cpp", "miniprojecttargetselector.h",
|
"miniprojecttargetselector.cpp", "miniprojecttargetselector.h",
|
||||||
"msvcparser.cpp", "msvcparser.h",
|
"msvcparser.cpp", "msvcparser.h",
|
||||||
|
|||||||
@@ -479,6 +479,35 @@ IRunControlFactory::IRunControlFactory(QObject *parent)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
using WorkerFactories = std::vector<RunControl::WorkerFactory>;
|
||||||
|
|
||||||
|
static WorkerFactories &theWorkerFactories()
|
||||||
|
{
|
||||||
|
static WorkerFactories factories;
|
||||||
|
return factories;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool IRunControlFactory::canRun(RunConfiguration *runConfiguration, Core::Id runMode) const
|
||||||
|
{
|
||||||
|
for (const RunControl::WorkerFactory &factory : theWorkerFactories()) {
|
||||||
|
if (factory.runMode == runMode && factory.constraint(runConfiguration))
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
RunControl *IRunControlFactory::create(RunConfiguration *runConfiguration, Core::Id runMode, QString *)
|
||||||
|
{
|
||||||
|
for (const RunControl::WorkerFactory &factory : theWorkerFactories()) {
|
||||||
|
if (factory.runMode == runMode && factory.constraint(runConfiguration)) {
|
||||||
|
auto runControl = new RunControl(runConfiguration, runMode);
|
||||||
|
factory.producer(runControl);
|
||||||
|
return runControl;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Returns an IRunConfigurationAspect to carry options for RunControls this
|
Returns an IRunConfigurationAspect to carry options for RunControls this
|
||||||
factory can create.
|
factory can create.
|
||||||
@@ -628,6 +657,7 @@ public:
|
|||||||
QPointer<Project> project; // Not owned.
|
QPointer<Project> project; // Not owned.
|
||||||
Utils::OutputFormatter *outputFormatter = nullptr;
|
Utils::OutputFormatter *outputFormatter = nullptr;
|
||||||
std::function<bool(bool*)> promptToStop;
|
std::function<bool(bool*)> promptToStop;
|
||||||
|
std::vector<RunControl::WorkerFactory> m_factories;
|
||||||
|
|
||||||
// A handle to the actual application process.
|
// A handle to the actual application process.
|
||||||
Utils::ProcessHandle applicationProcessHandle;
|
Utils::ProcessHandle applicationProcessHandle;
|
||||||
@@ -724,7 +754,7 @@ RunWorker *RunControl::createWorker(Core::Id id)
|
|||||||
{
|
{
|
||||||
auto keys = theWorkerCreators().keys();
|
auto keys = theWorkerCreators().keys();
|
||||||
Q_UNUSED(keys);
|
Q_UNUSED(keys);
|
||||||
RunWorkerCreator creator = theWorkerCreators().value(id);
|
Producer creator = theWorkerCreators().value(id);
|
||||||
if (creator)
|
if (creator)
|
||||||
return creator(this);
|
return creator(this);
|
||||||
creator = device()->workerCreator(id);
|
creator = device()->workerCreator(id);
|
||||||
@@ -733,6 +763,20 @@ RunWorker *RunControl::createWorker(Core::Id id)
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RunControl::Producer RunControl::producer(RunConfiguration *runConfiguration, Core::Id runMode)
|
||||||
|
{
|
||||||
|
for (const auto &factory : theWorkerFactories()) {
|
||||||
|
if (factory.runMode == runMode && factory.constraint(runConfiguration))
|
||||||
|
return factory.producer;
|
||||||
|
}
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
void RunControl::addWorkerFactory(const RunControl::WorkerFactory &workerFactory)
|
||||||
|
{
|
||||||
|
theWorkerFactories().push_back(workerFactory);
|
||||||
|
}
|
||||||
|
|
||||||
void RunControlPrivate::initiateStart()
|
void RunControlPrivate::initiateStart()
|
||||||
{
|
{
|
||||||
checkState(RunControlState::Initialized);
|
checkState(RunControlState::Initialized);
|
||||||
|
|||||||
@@ -337,8 +337,8 @@ class PROJECTEXPLORER_EXPORT IRunControlFactory : public QObject
|
|||||||
public:
|
public:
|
||||||
explicit IRunControlFactory(QObject *parent = nullptr);
|
explicit IRunControlFactory(QObject *parent = nullptr);
|
||||||
|
|
||||||
virtual bool canRun(RunConfiguration *runConfiguration, Core::Id mode) const = 0;
|
virtual bool canRun(RunConfiguration *runConfiguration, Core::Id runMode) const;
|
||||||
virtual RunControl *create(RunConfiguration *runConfiguration, Core::Id mode, QString *errorMessage) = 0;
|
virtual RunControl *create(RunConfiguration *runConfiguration, Core::Id runMode, QString *errorMessage);
|
||||||
|
|
||||||
virtual IRunConfigurationAspect *createRunConfigurationAspect(RunConfiguration *rc);
|
virtual IRunConfigurationAspect *createRunConfigurationAspect(RunConfiguration *rc);
|
||||||
};
|
};
|
||||||
@@ -492,10 +492,33 @@ public:
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
using RunWorkerCreator = std::function<RunWorker *(RunControl *)>;
|
|
||||||
static void registerRunWorkerCreator(Core::Id id, const RunWorkerCreator &creator);
|
|
||||||
RunWorker *createWorker(Core::Id id);
|
RunWorker *createWorker(Core::Id id);
|
||||||
|
|
||||||
|
using Producer = std::function<RunWorker *(RunControl *)>;
|
||||||
|
using Constraint = std::function<bool(RunConfiguration *)>;
|
||||||
|
|
||||||
|
template <class Worker>
|
||||||
|
static void registerWorker(Core::Id runMode, const Constraint &constraint)
|
||||||
|
{
|
||||||
|
auto producer = [](RunControl *rc) { return new Worker(rc); };
|
||||||
|
addWorkerFactory({runMode, constraint, producer});
|
||||||
|
}
|
||||||
|
template <class Config, class Worker>
|
||||||
|
static void registerWorker(Core::Id runMode)
|
||||||
|
{
|
||||||
|
auto constraint = [](RunConfiguration *runConfig) { return qobject_cast<Config *>(runConfig); };
|
||||||
|
auto producer = [](RunControl *rc) { return new Worker(rc); };
|
||||||
|
addWorkerFactory({runMode, constraint, producer});
|
||||||
|
}
|
||||||
|
|
||||||
|
struct WorkerFactory {
|
||||||
|
Core::Id runMode;
|
||||||
|
Constraint constraint;
|
||||||
|
Producer producer;
|
||||||
|
};
|
||||||
|
|
||||||
|
static Producer producer(RunConfiguration *runConfiguration, Core::Id runMode);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void appendMessageRequested(ProjectExplorer::RunControl *runControl,
|
void appendMessageRequested(ProjectExplorer::RunControl *runControl,
|
||||||
const QString &msg, Utils::OutputFormat format);
|
const QString &msg, Utils::OutputFormat format);
|
||||||
@@ -509,6 +532,8 @@ private:
|
|||||||
friend class RunWorker;
|
friend class RunWorker;
|
||||||
friend class Internal::RunWorkerPrivate;
|
friend class Internal::RunWorkerPrivate;
|
||||||
|
|
||||||
|
static void addWorkerFactory(const WorkerFactory &workerFactory);
|
||||||
|
|
||||||
void bringApplicationToForegroundInternal();
|
void bringApplicationToForegroundInternal();
|
||||||
Internal::RunControlPrivate *d;
|
Internal::RunControlPrivate *d;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -655,30 +655,6 @@ bool PythonProjectNode::renameFile(const QString &filePath, const QString &newFi
|
|||||||
return m_project->renameFile(filePath, newFilePath);
|
return m_project->renameFile(filePath, newFilePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
// PythonRunControlFactory
|
|
||||||
|
|
||||||
class PythonRunControlFactory : public IRunControlFactory
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
bool canRun(RunConfiguration *runConfiguration, Core::Id mode) const override;
|
|
||||||
RunControl *create(RunConfiguration *runConfiguration, Core::Id mode, QString *errorMessage) override;
|
|
||||||
};
|
|
||||||
|
|
||||||
bool PythonRunControlFactory::canRun(RunConfiguration *runConfiguration, Core::Id mode) const
|
|
||||||
{
|
|
||||||
auto rc = dynamic_cast<PythonRunConfiguration *>(runConfiguration);
|
|
||||||
return mode == ProjectExplorer::Constants::NORMAL_RUN_MODE && rc && !rc->interpreter().isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
RunControl *PythonRunControlFactory::create(RunConfiguration *runConfiguration, Core::Id mode, QString *errorMessage)
|
|
||||||
{
|
|
||||||
Q_UNUSED(errorMessage)
|
|
||||||
QTC_ASSERT(canRun(runConfiguration, mode), return 0);
|
|
||||||
auto runControl = new RunControl(runConfiguration, mode);
|
|
||||||
(void) new SimpleTargetRunner(runControl);
|
|
||||||
return runControl;
|
|
||||||
}
|
|
||||||
|
|
||||||
// PythonRunConfigurationWidget
|
// PythonRunConfigurationWidget
|
||||||
|
|
||||||
void PythonRunConfigurationWidget::setInterpreter(const QString &interpreter)
|
void PythonRunConfigurationWidget::setInterpreter(const QString &interpreter)
|
||||||
@@ -713,7 +689,12 @@ bool PythonEditorPlugin::initialize(const QStringList &arguments, QString *error
|
|||||||
|
|
||||||
addAutoReleasedObject(new PythonEditorFactory);
|
addAutoReleasedObject(new PythonEditorFactory);
|
||||||
addAutoReleasedObject(new PythonRunConfigurationFactory);
|
addAutoReleasedObject(new PythonRunConfigurationFactory);
|
||||||
addAutoReleasedObject(new PythonRunControlFactory);
|
|
||||||
|
auto constraint = [](RunConfiguration *runConfiguration) {
|
||||||
|
auto rc = dynamic_cast<PythonRunConfiguration *>(runConfiguration);
|
||||||
|
return rc && !rc->interpreter().isEmpty();
|
||||||
|
};
|
||||||
|
RunControl::registerWorker<SimpleTargetRunner>(ProjectExplorer::Constants::NORMAL_RUN_MODE, constraint);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,6 @@
|
|||||||
#include <projectexplorer/buildstep.h>
|
#include <projectexplorer/buildstep.h>
|
||||||
#include <projectexplorer/buildsteplist.h>
|
#include <projectexplorer/buildsteplist.h>
|
||||||
#include <projectexplorer/deployconfiguration.h>
|
#include <projectexplorer/deployconfiguration.h>
|
||||||
#include <projectexplorer/localapplicationruncontrol.h>
|
|
||||||
#include <projectexplorer/localenvironmentaspect.h>
|
#include <projectexplorer/localenvironmentaspect.h>
|
||||||
#include <projectexplorer/runconfigurationaspects.h>
|
#include <projectexplorer/runconfigurationaspects.h>
|
||||||
#include <projectexplorer/target.h>
|
#include <projectexplorer/target.h>
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ HEADERS += \
|
|||||||
genericlinuxdeviceconfigurationfactory.h \
|
genericlinuxdeviceconfigurationfactory.h \
|
||||||
remotelinuxrunconfigurationwidget.h \
|
remotelinuxrunconfigurationwidget.h \
|
||||||
remotelinuxrunconfigurationfactory.h \
|
remotelinuxrunconfigurationfactory.h \
|
||||||
remotelinuxruncontrolfactory.h \
|
|
||||||
remotelinuxdebugsupport.h \
|
remotelinuxdebugsupport.h \
|
||||||
genericlinuxdeviceconfigurationwizardpages.h \
|
genericlinuxdeviceconfigurationwizardpages.h \
|
||||||
abstractremotelinuxdeploystep.h \
|
abstractremotelinuxdeploystep.h \
|
||||||
@@ -63,7 +62,6 @@ SOURCES += \
|
|||||||
genericlinuxdeviceconfigurationfactory.cpp \
|
genericlinuxdeviceconfigurationfactory.cpp \
|
||||||
remotelinuxrunconfigurationwidget.cpp \
|
remotelinuxrunconfigurationwidget.cpp \
|
||||||
remotelinuxrunconfigurationfactory.cpp \
|
remotelinuxrunconfigurationfactory.cpp \
|
||||||
remotelinuxruncontrolfactory.cpp \
|
|
||||||
remotelinuxdebugsupport.cpp \
|
remotelinuxdebugsupport.cpp \
|
||||||
genericlinuxdeviceconfigurationwizardpages.cpp \
|
genericlinuxdeviceconfigurationwizardpages.cpp \
|
||||||
abstractremotelinuxdeploystep.cpp \
|
abstractremotelinuxdeploystep.cpp \
|
||||||
|
|||||||
@@ -98,8 +98,6 @@ Project {
|
|||||||
"remotelinuxrunconfigurationfactory.h",
|
"remotelinuxrunconfigurationfactory.h",
|
||||||
"remotelinuxrunconfigurationwidget.cpp",
|
"remotelinuxrunconfigurationwidget.cpp",
|
||||||
"remotelinuxrunconfigurationwidget.h",
|
"remotelinuxrunconfigurationwidget.h",
|
||||||
"remotelinuxruncontrolfactory.cpp",
|
|
||||||
"remotelinuxruncontrolfactory.h",
|
|
||||||
"remotelinuxsignaloperation.cpp",
|
"remotelinuxsignaloperation.cpp",
|
||||||
"remotelinuxsignaloperation.h",
|
"remotelinuxsignaloperation.h",
|
||||||
"remotelinuxutils.cpp",
|
"remotelinuxutils.cpp",
|
||||||
|
|||||||
@@ -28,9 +28,12 @@
|
|||||||
#include "embeddedlinuxqtversionfactory.h"
|
#include "embeddedlinuxqtversionfactory.h"
|
||||||
#include "genericlinuxdeviceconfigurationfactory.h"
|
#include "genericlinuxdeviceconfigurationfactory.h"
|
||||||
#include "genericremotelinuxdeploystepfactory.h"
|
#include "genericremotelinuxdeploystepfactory.h"
|
||||||
|
#include "remotelinuxanalyzesupport.h"
|
||||||
|
#include "remotelinuxcustomrunconfiguration.h"
|
||||||
|
#include "remotelinuxdebugsupport.h"
|
||||||
#include "remotelinuxdeployconfigurationfactory.h"
|
#include "remotelinuxdeployconfigurationfactory.h"
|
||||||
|
#include "remotelinuxrunconfiguration.h"
|
||||||
#include "remotelinuxrunconfigurationfactory.h"
|
#include "remotelinuxrunconfigurationfactory.h"
|
||||||
#include "remotelinuxruncontrolfactory.h"
|
|
||||||
|
|
||||||
#include <QtPlugin>
|
#include <QtPlugin>
|
||||||
|
|
||||||
@@ -48,9 +51,24 @@ bool RemoteLinuxPlugin::initialize(const QStringList &arguments,
|
|||||||
Q_UNUSED(arguments)
|
Q_UNUSED(arguments)
|
||||||
Q_UNUSED(errorMessage)
|
Q_UNUSED(errorMessage)
|
||||||
|
|
||||||
|
using namespace ProjectExplorer;
|
||||||
|
using namespace ProjectExplorer::Constants;
|
||||||
|
|
||||||
|
auto constraint = [](RunConfiguration *runConfig) {
|
||||||
|
const Core::Id id = runConfig->id();
|
||||||
|
return id == RemoteLinuxCustomRunConfiguration::runConfigId()
|
||||||
|
|| id.name().startsWith(RemoteLinuxRunConfiguration::IdPrefix);
|
||||||
|
};
|
||||||
|
|
||||||
|
RunControl::registerWorker<SimpleTargetRunner>(NORMAL_RUN_MODE, constraint);
|
||||||
|
RunControl::registerWorker<LinuxDeviceDebugSupport>(DEBUG_RUN_MODE, constraint);
|
||||||
|
RunControl::registerWorker<LinuxDeviceDebugSupport>(DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN,
|
||||||
|
constraint);
|
||||||
|
RunControl::registerWorker<RemoteLinuxQmlProfilerSupport>(QML_PROFILER_RUN_MODE, constraint);
|
||||||
|
//RunControl::registerWorker<RemoteLinuxPerfSupport>(PERFPROFILER_RUN_MODE, constraint);
|
||||||
|
|
||||||
addAutoReleasedObject(new GenericLinuxDeviceConfigurationFactory);
|
addAutoReleasedObject(new GenericLinuxDeviceConfigurationFactory);
|
||||||
addAutoReleasedObject(new RemoteLinuxRunConfigurationFactory);
|
addAutoReleasedObject(new RemoteLinuxRunConfigurationFactory);
|
||||||
addAutoReleasedObject(new RemoteLinuxRunControlFactory);
|
|
||||||
addAutoReleasedObject(new RemoteLinuxDeployConfigurationFactory);
|
addAutoReleasedObject(new RemoteLinuxDeployConfigurationFactory);
|
||||||
addAutoReleasedObject(new GenericRemoteLinuxDeployStepFactory);
|
addAutoReleasedObject(new GenericRemoteLinuxDeployStepFactory);
|
||||||
|
|
||||||
|
|||||||
@@ -1,104 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of Qt Creator.
|
|
||||||
**
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and The Qt Company. For licensing terms
|
|
||||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
||||||
** information use the contact form at https://www.qt.io/contact-us.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3 as published by the Free Software
|
|
||||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
||||||
** included in the packaging of this file. Please review the following
|
|
||||||
** information to ensure the GNU General Public License requirements will
|
|
||||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "remotelinuxruncontrolfactory.h"
|
|
||||||
|
|
||||||
#include "remotelinuxanalyzesupport.h"
|
|
||||||
#include "remotelinuxdebugsupport.h"
|
|
||||||
#include "remotelinuxcustomrunconfiguration.h"
|
|
||||||
#include "remotelinuxrunconfiguration.h"
|
|
||||||
|
|
||||||
#include <debugger/debuggerruncontrol.h>
|
|
||||||
|
|
||||||
#include <projectexplorer/kitinformation.h>
|
|
||||||
#include <projectexplorer/runnables.h>
|
|
||||||
#include <projectexplorer/target.h>
|
|
||||||
|
|
||||||
#include <utils/portlist.h>
|
|
||||||
#include <utils/qtcassert.h>
|
|
||||||
|
|
||||||
using namespace Debugger;
|
|
||||||
using namespace ProjectExplorer;
|
|
||||||
|
|
||||||
namespace RemoteLinux {
|
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
RemoteLinuxRunControlFactory::RemoteLinuxRunControlFactory(QObject *parent)
|
|
||||||
: IRunControlFactory(parent)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
bool RemoteLinuxRunControlFactory::canRun(RunConfiguration *runConfiguration, Core::Id mode) const
|
|
||||||
{
|
|
||||||
if (mode != ProjectExplorer::Constants::NORMAL_RUN_MODE
|
|
||||||
&& mode != ProjectExplorer::Constants::DEBUG_RUN_MODE
|
|
||||||
&& mode != ProjectExplorer::Constants::DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN
|
|
||||||
&& mode != ProjectExplorer::Constants::QML_PROFILER_RUN_MODE
|
|
||||||
// && mode != ProjectExplorer::Constants::PERFPROFILER_RUN_MODE
|
|
||||||
) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
const Core::Id id = runConfiguration->id();
|
|
||||||
return runConfiguration->isEnabled()
|
|
||||||
&& (id == RemoteLinuxCustomRunConfiguration::runConfigId()
|
|
||||||
|| id.name().startsWith(RemoteLinuxRunConfiguration::IdPrefix));
|
|
||||||
}
|
|
||||||
|
|
||||||
RunControl *RemoteLinuxRunControlFactory::create(RunConfiguration *runConfig, Core::Id mode,
|
|
||||||
QString *)
|
|
||||||
{
|
|
||||||
QTC_ASSERT(canRun(runConfig, mode), return 0);
|
|
||||||
|
|
||||||
if (mode == ProjectExplorer::Constants::NORMAL_RUN_MODE) {
|
|
||||||
auto runControl = new RunControl(runConfig, mode);
|
|
||||||
(void) new SimpleTargetRunner(runControl);
|
|
||||||
return runControl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mode == ProjectExplorer::Constants::DEBUG_RUN_MODE
|
|
||||||
|| mode == ProjectExplorer::Constants::DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN) {
|
|
||||||
auto runControl = new RunControl(runConfig, mode);
|
|
||||||
(void) new LinuxDeviceDebugSupport(runControl);
|
|
||||||
return runControl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mode == ProjectExplorer::Constants::QML_PROFILER_RUN_MODE) {
|
|
||||||
auto runControl = new RunControl(runConfig, mode);
|
|
||||||
(void) new RemoteLinuxQmlProfilerSupport(runControl);
|
|
||||||
return runControl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( mode == ProjectExplorer::Constants::PERFPROFILER_RUN_MODE) {
|
|
||||||
auto runControl = new RunControl(runConfig, mode);
|
|
||||||
(void) new RemoteLinuxPerfSupport(runControl);
|
|
||||||
return runControl;
|
|
||||||
}
|
|
||||||
QTC_CHECK(false);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace Internal
|
|
||||||
} // namespace RemoteLinux
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of Qt Creator.
|
|
||||||
**
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and The Qt Company. For licensing terms
|
|
||||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
||||||
** information use the contact form at https://www.qt.io/contact-us.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3 as published by the Free Software
|
|
||||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
||||||
** included in the packaging of this file. Please review the following
|
|
||||||
** information to ensure the GNU General Public License requirements will
|
|
||||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <projectexplorer/runconfiguration.h>
|
|
||||||
|
|
||||||
namespace RemoteLinux {
|
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
class RemoteLinuxRunControlFactory : public ProjectExplorer::IRunControlFactory
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
explicit RemoteLinuxRunControlFactory(QObject *parent = 0);
|
|
||||||
|
|
||||||
bool canRun(ProjectExplorer::RunConfiguration *runConfiguration,
|
|
||||||
Core::Id mode) const override;
|
|
||||||
ProjectExplorer::RunControl *create(ProjectExplorer::RunConfiguration *runConfiguration,
|
|
||||||
Core::Id mode, QString *errorMessage) override;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace Internal
|
|
||||||
} // namespace RemoteLinux
|
|
||||||
Reference in New Issue
Block a user