1 /* 2 SPDX-FileCopyrightText: 2009 Andreas Pakulat <apaku@gmx.de> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #ifndef KDEVPLATFORM_PLUGIN_IEXECUTEPLUGIN_H 8 #define KDEVPLATFORM_PLUGIN_IEXECUTEPLUGIN_H 9 10 #include <QString> 11 12 namespace KDevelop 13 { 14 class ILaunchConfiguration; 15 } 16 17 class KJob; 18 class QUrl; 19 class QStringList; 20 21 /** 22 @author Andreas Pakulat 23 */ 24 25 class IExecutePlugin 26 { 27 public: 28 static constexpr const char* isExecutableEntry = "isExecutable"; 29 static constexpr const char* executableEntry = "Executable"; 30 static constexpr const char* workingDirEntry = "Working Directory"; 31 // TODO: migrate to more consistent key term "EnvironmentProfile" 32 static constexpr const char* environmentProfileEntry = "EnvironmentGroup"; 33 static constexpr const char* useTerminalEntry = "Use External Terminal"; 34 static constexpr const char* terminalEntry = "External Terminal"; 35 ~IExecutePlugin()36 virtual ~IExecutePlugin() {} 37 38 virtual QUrl executable( KDevelop::ILaunchConfiguration* config, QString& error) const = 0; 39 virtual QStringList arguments( KDevelop::ILaunchConfiguration* config, QString& error) const = 0; 40 virtual QUrl workingDirectory( KDevelop::ILaunchConfiguration* config) const = 0; 41 virtual KJob* dependencyJob( KDevelop::ILaunchConfiguration* config) const = 0; 42 virtual QString environmentProfileName(KDevelop::ILaunchConfiguration* config) const = 0; 43 virtual bool useTerminal( KDevelop::ILaunchConfiguration* config) const = 0; 44 virtual QString terminal( KDevelop::ILaunchConfiguration* config) const = 0; 45 virtual QString nativeAppConfigTypeId() const = 0; 46 }; 47 48 Q_DECLARE_INTERFACE( IExecutePlugin, "org.kdevelop.IExecutePlugin" ) 49 50 #endif 51 52