File indexing completed on 2024-04-28 04:38:38
0001 /* 0002 SPDX-FileCopyrightText: 2009 Andreas Pakulat <apaku@gmx.de> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KDEVPLATFORM_PLUGIN_IEXECUTEPLUGIN_H 0008 #define KDEVPLATFORM_PLUGIN_IEXECUTEPLUGIN_H 0009 0010 #include <QString> 0011 0012 namespace KDevelop 0013 { 0014 class ILaunchConfiguration; 0015 } 0016 0017 class KJob; 0018 class QUrl; 0019 class QStringList; 0020 0021 /** 0022 @author Andreas Pakulat 0023 */ 0024 0025 class IExecutePlugin 0026 { 0027 public: 0028 static constexpr const char* isExecutableEntry = "isExecutable"; 0029 static constexpr const char* executableEntry = "Executable"; 0030 static constexpr const char* workingDirEntry = "Working Directory"; 0031 // TODO: migrate to more consistent key term "EnvironmentProfile" 0032 static constexpr const char* environmentProfileEntry = "EnvironmentGroup"; 0033 static constexpr const char* useTerminalEntry = "Use External Terminal"; 0034 static constexpr const char* terminalEntry = "External Terminal"; 0035 0036 virtual ~IExecutePlugin() {} 0037 0038 virtual QUrl executable( KDevelop::ILaunchConfiguration* config, QString& error) const = 0; 0039 virtual QStringList arguments( KDevelop::ILaunchConfiguration* config, QString& error) const = 0; 0040 virtual QUrl workingDirectory( KDevelop::ILaunchConfiguration* config) const = 0; 0041 virtual KJob* dependencyJob( KDevelop::ILaunchConfiguration* config) const = 0; 0042 virtual QString environmentProfileName(KDevelop::ILaunchConfiguration* config) const = 0; 0043 virtual bool useTerminal( KDevelop::ILaunchConfiguration* config) const = 0; 0044 virtual QString terminal( KDevelop::ILaunchConfiguration* config) const = 0; 0045 virtual QString nativeAppConfigTypeId() const = 0; 0046 }; 0047 0048 Q_DECLARE_INTERFACE( IExecutePlugin, "org.kdevelop.IExecutePlugin" ) 0049 0050 #endif 0051