1 /*
2     SPDX-FileCopyrightText: 2007 Hamish Rodda <rodda@kde.org>
3 
4     SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #ifndef KDEVPLATFORM_PLUGIN_EXECUTEPLUGIN_H
8 #define KDEVPLATFORM_PLUGIN_EXECUTEPLUGIN_H
9 
10 #include <interfaces/iplugin.h>
11 #include <QVariant>
12 #include "iexecuteplugin.h"
13 
14 class QUrl;
15 class KJob;
16 
17 class NativeAppConfigType;
18 
19 class ExecutePlugin : public KDevelop::IPlugin, public IExecutePlugin
20 {
21     Q_OBJECT
22     Q_INTERFACES( IExecutePlugin )
23 
24   public:
25     explicit ExecutePlugin(QObject *parent, const QVariantList & = QVariantList() );
26     ~ExecutePlugin() override;
27 
28     static constexpr const char* projectTargetEntry = "Project Target";
29     static constexpr const char* argumentsEntry = "Arguments";
30     static constexpr const char* configuredByCTest = "ConfiguredByCTest";
31     static constexpr const char* killBeforeExecutingAgain = "Kill Before Executing Again";
32     static constexpr const char* dependencyActionEntry = "Dependency Action";
33     static constexpr const char* dependencyEntry = "Dependencies";
34 
35     void unload() override;
36 
37     QUrl executable( KDevelop::ILaunchConfiguration*, QString& err ) const override;
38     QStringList arguments( KDevelop::ILaunchConfiguration*, QString& err ) const override;
39     QUrl workingDirectory( KDevelop::ILaunchConfiguration* ) const override;
40     KJob* dependencyJob( KDevelop::ILaunchConfiguration* ) const override;
41     QString environmentProfileName(KDevelop::ILaunchConfiguration*) const override;
42     bool useTerminal( KDevelop::ILaunchConfiguration* ) const override;
43     QString terminal( KDevelop::ILaunchConfiguration* ) const override;
44     QString nativeAppConfigTypeId() const override;
45 
46     NativeAppConfigType* m_configType;
47 };
48 
49 #endif // KDEVPLATFORM_PLUGIN_EXECUTEPLUGIN_H
50