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