Warning, file /kdevelop/kdevelop/plugins/ninjabuilder/ninjabuilder.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2012 Aleix Pol Gonzalez <aleixpol@kde.org> 0003 SPDX-FileCopyrightText: 2017 Kevin Funk <kfunk@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-only 0006 */ 0007 0008 #ifndef KDEVNINJABUILDERPLUGIN_H 0009 #define KDEVNINJABUILDERPLUGIN_H 0010 0011 #include "ninjajob.h" 0012 0013 #include <interfaces/iplugin.h> 0014 #include <project/interfaces/iprojectbuilder.h> 0015 #include <util/objectlist.h> 0016 #include <QUrl> 0017 #include <QVariantList> 0018 0019 class NinjaBuilder 0020 : public KDevelop::IPlugin 0021 , public KDevelop::IProjectBuilder 0022 { 0023 Q_OBJECT 0024 Q_INTERFACES(KDevelop::IProjectBuilder) 0025 0026 public: 0027 explicit NinjaBuilder(QObject* parent = nullptr, const QVariantList& args = QVariantList()); 0028 0029 KJob* build(KDevelop::ProjectBaseItem* item) override; 0030 KJob* clean(KDevelop::ProjectBaseItem* item) override; 0031 KJob* install(KDevelop::ProjectBaseItem* dom, const QUrl& installPath) override; 0032 KJob* install(KDevelop::ProjectBaseItem* item); 0033 0034 NinjaJob* runNinja(KDevelop::ProjectBaseItem* item, NinjaJob::CommandType commandType, 0035 const QStringList& args, const QByteArray& signal); 0036 0037 int perProjectConfigPages() const override; 0038 KDevelop::ConfigPage* perProjectConfigPage(int number, const KDevelop::ProjectConfigOptions& options, QWidget* parent) override; 0039 0040 Q_SIGNALS: 0041 void built(KDevelop::ProjectBaseItem* item); 0042 void failed(KDevelop::ProjectBaseItem* item); 0043 void installed(KDevelop::ProjectBaseItem* item); 0044 void cleaned(KDevelop::ProjectBaseItem* item); 0045 0046 private: 0047 KDevelop::ObjectList<NinjaJob> m_activeNinjaJobs; 0048 }; 0049 0050 #endif // KDEVNINJABUILDERPLUGIN_H