diff --git a/src/plugins/baremetal/baremetal.pro b/src/plugins/baremetal/baremetal.pro index f77ad11412ae44916e3f572d377c6dd37cd8c18e..d6294b5ab79fb6931d873b1e1ca25021e2643969 100644 --- a/src/plugins/baremetal/baremetal.pro +++ b/src/plugins/baremetal/baremetal.pro @@ -10,7 +10,6 @@ SOURCES += baremetalplugin.cpp \ baremetalrunconfiguration.cpp \ baremetalrunconfigurationwidget.cpp \ baremetalgdbcommandsdeploystep.cpp \ - baremetalruncontrolfactory.cpp \ baremetaldeviceconfigurationwizardpages.cpp \ baremetaldeviceconfigurationwizard.cpp \ baremetaldeviceconfigurationwidget.cpp \ @@ -33,7 +32,6 @@ HEADERS += baremetalplugin.h \ baremetalrunconfiguration.h \ baremetalrunconfigurationwidget.h \ baremetalgdbcommandsdeploystep.h \ - baremetalruncontrolfactory.h \ baremetaldeviceconfigurationfactory.h \ baremetaldeviceconfigurationwidget.h \ baremetaldeviceconfigurationwizard.h \ diff --git a/src/plugins/baremetal/baremetal.qbs b/src/plugins/baremetal/baremetal.qbs index 0474e562d139c2ea51a413a55c1cc263893caf59..74b56d611d36e5dcf64944dc30f3edcea4267347 100644 --- a/src/plugins/baremetal/baremetal.qbs +++ b/src/plugins/baremetal/baremetal.qbs @@ -26,7 +26,6 @@ QtcPlugin { "baremetalrunconfiguration.cpp", "baremetalrunconfiguration.h", "baremetalrunconfigurationfactory.cpp", "baremetalrunconfigurationfactory.h", "baremetalrunconfigurationwidget.cpp", "baremetalrunconfigurationwidget.h", - "baremetalruncontrolfactory.cpp", "baremetalruncontrolfactory.h", "baremetaldebugsupport.cpp", "baremetaldebugsupport.h", "gdbserverproviderprocess.cpp", "gdbserverproviderprocess.h", "gdbserverproviderssettingspage.cpp", "gdbserverproviderssettingspage.h", diff --git a/src/plugins/baremetal/baremetalplugin.cpp b/src/plugins/baremetal/baremetalplugin.cpp index 2413236bc907d46824058539e3d0af5fd121ff84..2e978f72333e4aa7fc4a1a2f5c0d3bdade52891b 100644 --- a/src/plugins/baremetal/baremetalplugin.cpp +++ b/src/plugins/baremetal/baremetalplugin.cpp @@ -27,7 +27,8 @@ #include "baremetalplugin.h" #include "baremetalconstants.h" #include "baremetaldeviceconfigurationfactory.h" -#include "baremetalruncontrolfactory.h" +#include "baremetaldebugsupport.h" +#include "baremetalrunconfiguration.h" #include "baremetalrunconfigurationfactory.h" #include "gdbserverproviderssettingspage.h" @@ -46,6 +47,8 @@ #include <QMenu> #include <QtPlugin> +using namespace ProjectExplorer; + namespace BareMetal { namespace Internal { @@ -64,11 +67,22 @@ bool BareMetalPlugin::initialize(const QStringList &arguments, QString *errorStr Q_UNUSED(errorString) addAutoReleasedObject(new BareMetalDeviceConfigurationFactory); - addAutoReleasedObject(new BareMetalRunControlFactory); addAutoReleasedObject(new BareMetalRunConfigurationFactory); addAutoReleasedObject(new GdbServerProvidersSettingsPage); addAutoReleasedObject(new GdbServerProviderManager); + auto constraint = [](RunConfiguration *runConfig) { + const QByteArray idStr = runConfig->id().name(); + return runConfig->isEnabled() && idStr.startsWith(BareMetalRunConfiguration::IdPrefix); + }; + + RunControl::registerWorker<BareMetalDebugSupport> + (ProjectExplorer::Constants::NORMAL_RUN_MODE, constraint); + RunControl::registerWorker<BareMetalDebugSupport> + (ProjectExplorer::Constants::DEBUG_RUN_MODE, constraint); + RunControl::registerWorker<BareMetalDebugSupport> + (ProjectExplorer::Constants::DEBUG_RUN_MODE_WITH_BREAK_ON_MAIN, constraint); + return true; } diff --git a/src/plugins/baremetal/baremetalruncontrolfactory.cpp b/src/plugins/baremetal/baremetalruncontrolfactory.cpp deleted file mode 100644 index 07c3b8b66e91131f769acb9b32e43958abc96d98..0000000000000000000000000000000000000000 --- a/src/plugins/baremetal/baremetalruncontrolfactory.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Tim Sander <tim@krieglstein.org> -** Copyright (C) 2016 Denis Shienkov <denis.shienkov@gmail.com> -** 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 "baremetalruncontrolfactory.h" -#include "baremetaldebugsupport.h" - -using namespace ProjectExplorer; - -namespace BareMetal { -namespace Internal { - -BareMetalRunControlFactory::BareMetalRunControlFactory(QObject *parent) : - IRunControlFactory(parent) -{ -} - -bool BareMetalRunControlFactory::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) { - return false; - } - - const QByteArray idStr = runConfiguration->id().name(); - return runConfiguration->isEnabled() && idStr.startsWith(BareMetalRunConfiguration::IdPrefix); -} - -RunControl *BareMetalRunControlFactory::create( - RunConfiguration *runConfiguration, Core::Id mode, QString *) -{ - auto runControl = new RunControl(runConfiguration, mode); - (void) new BareMetalDebugSupport(runControl); - return runControl; -} - -} // namespace Internal -} // namespace BareMetal diff --git a/src/plugins/baremetal/baremetalruncontrolfactory.h b/src/plugins/baremetal/baremetalruncontrolfactory.h deleted file mode 100644 index 4e53d87518a06004351325e24ac03e7c985a8045..0000000000000000000000000000000000000000 --- a/src/plugins/baremetal/baremetalruncontrolfactory.h +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 Tim Sander <tim@krieglstein.org> -** Copyright (C) 2016 Denis Shienkov <denis.shienkov@gmail.com> -** 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 "baremetalrunconfiguration.h" - -#include <projectexplorer/runconfiguration.h> -#include <debugger/debuggerstartparameters.h> - -namespace BareMetal { -namespace Internal { - -class BareMetalRunControlFactory : public ProjectExplorer::IRunControlFactory -{ - Q_OBJECT - -public: - explicit BareMetalRunControlFactory(QObject *parent = 0); - - bool canRun(ProjectExplorer::RunConfiguration *runConfiguration, Core::Id mode) const override; - ProjectExplorer::RunControl *create(ProjectExplorer::RunConfiguration *runConfiguration, - Core::Id mode, QString *) override; -}; - -} // namespace Internal -} // namespace BareMetal