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;