diff --git a/projectbuilders/ninjabuilder/kdevninjabuilderplugin.cpp b/projectbuilders/ninjabuilder/kdevninjabuilderplugin.cpp
index 909d146..dc28408 100644
--- a/projectbuilders/ninjabuilder/kdevninjabuilderplugin.cpp
+++ b/projectbuilders/ninjabuilder/kdevninjabuilderplugin.cpp
@@ -20,7 +20,6 @@
#include "ninjajob.h"
#include <KAboutData>
#include <KPluginFactory>
-#include <KStandardDirs>
#include <KDebug>
#include <KConfigGroup>
#include <KShell>
@@ -43,7 +42,7 @@ KDevNinjaBuilderPlugin::KDevNinjaBuilderPlugin(QObject* parent, const QVariantLi
bool KDevNinjaBuilderPlugin::hasError() const
{
- return KStandardDirs::findExe("ninja").isEmpty();
+ return NinjaJob::ninjaBinary().isEmpty();
}
static QStringList targetsInFolder(KDevelop::ProjectFolderItem* item)
diff --git a/projectbuilders/ninjabuilder/ninjajob.cpp b/projectbuilders/ninjabuilder/ninjajob.cpp
index 9efa57c..acb5d07 100644
--- a/projectbuilders/ninjabuilder/ninjajob.cpp
+++ b/projectbuilders/ninjabuilder/ninjajob.cpp
@@ -22,6 +22,7 @@
#include <KDebug>
#include <KLocalizedString>
#include <KConfigGroup>
+#include <KStandardDirs>
#include <interfaces/iproject.h>
#include <outputview/outputmodel.h>
#include <project/interfaces/ibuildsystemmanager.h>
@@ -44,7 +45,7 @@ NinjaJob::NinjaJob(KDevelop::ProjectBaseItem* item, const QStringList& arguments
setFilteringStrategy( KDevelop::OutputModel::CompilerFilter );
setProperties( NeedWorkingDirectory | PortableMessages | DisplayStderr | IsBuilderHint | PostProcessOutput );
- *this << "ninja";
+ *this << ninjaBinary();
*this << arguments;
QStringList targets;
@@ -68,6 +69,15 @@ void NinjaJob::setIsInstalling( bool isInstalling )
m_isInstalling = isInstalling;
}
+QString NinjaJob::ninjaBinary()
+{
+ QString path = KStandardDirs::findExe("ninja-build");
+ if (path.isEmpty()) {
+ path = KStandardDirs::findExe("ninja");
+ }
+ return path;
+}
+
KUrl NinjaJob::workingDirectory() const
{
KDevelop::ProjectBaseItem* it = item();
diff --git a/projectbuilders/ninjabuilder/ninjajob.h b/projectbuilders/ninjabuilder/ninjajob.h
index 0bd1725..1186c06 100644
--- a/projectbuilders/ninjabuilder/ninjajob.h
+++ b/projectbuilders/ninjabuilder/ninjajob.h
@@ -39,6 +39,7 @@ class NinjaJob : public KDevelop::OutputExecuteJob
public:
NinjaJob( KDevelop::ProjectBaseItem* item, const QStringList& arguments, const QByteArray& signal, QObject* parent );
void setIsInstalling( bool isInstalling );
+ static QString ninjaBinary();
virtual KUrl workingDirectory() const;
virtual QStringList privilegedExecutionCommand() const;