File indexing completed on 2024-04-28 04:39:10
0001 /* 0002 SPDX-FileCopyrightText: 2006-2007 Andreas Pakulat <apaku@gmx.de> 0003 SPDX-FileCopyrightText: 2008 Hamish Rodda <rodda@kde.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef QMAKEJOB_H 0009 #define QMAKEJOB_H 0010 0011 #include <outputview/outputexecutejob.h> 0012 0013 #include <QProcess> 0014 0015 namespace KDevelop{ 0016 class CommandExecutor; 0017 class IProject; 0018 } 0019 0020 /** 0021 @author Andreas Pakulat 0022 @author Hamish Rodda (KJob porting) 0023 */ 0024 class QMakeJob : public KDevelop::OutputExecuteJob 0025 { 0026 Q_OBJECT 0027 0028 public: 0029 explicit QMakeJob(QObject *parent = nullptr); 0030 0031 enum ErrorTypes { 0032 NoProjectError = UserDefinedError, 0033 ConfigureError 0034 }; 0035 0036 void setProject(KDevelop::IProject* project); 0037 0038 void start() override; 0039 0040 QUrl workingDirectory() const override; 0041 QStringList commandLine() const override; 0042 0043 protected: 0044 bool doKill() override; 0045 0046 private Q_SLOTS: 0047 void slotFailed(QProcess::ProcessError); 0048 void slotCompleted(int); 0049 0050 private: 0051 KDevelop::IProject* m_project = nullptr; 0052 KDevelop::CommandExecutor* m_cmd = nullptr; 0053 bool m_killed = false; 0054 }; 0055 0056 #endif // QMAKEJOB_H 0057