[kdevelop] Fix ninja builder
Jan Grulich
jgrulich at fedoraproject.org
Thu Dec 12 10:01:12 UTC 2013
commit fe154753801ca7d4ebe6312d639d385a8849e389
Author: Jan Grulich <jgrulich at redhat.com>
Date: Thu Dec 12 11:01:01 2013 +0100
Fix ninja builder
kdevelop-4.5.0-no-rpath.patch | 1 -
kdevelop-4.6.0-ninja-builder.patch | 71 ++++++++++++++++++++++++++++++++++++
kdevelop.spec | 8 ++++-
3 files changed, 78 insertions(+), 2 deletions(-)
---
diff --git a/kdevelop-4.5.0-no-rpath.patch b/kdevelop-4.5.0-no-rpath.patch
index f1b642c..a6718d1 100644
--- a/kdevelop-4.5.0-no-rpath.patch
+++ b/kdevelop-4.5.0-no-rpath.patch
@@ -8,4 +8,3 @@
+# set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
find_package(KDevPlatform ${KDEVPLATFORM_VERSION} REQUIRED)
-
\ No newline at end of file
diff --git a/kdevelop-4.6.0-ninja-builder.patch b/kdevelop-4.6.0-ninja-builder.patch
new file mode 100644
index 0000000..f1ab12d
--- /dev/null
+++ b/kdevelop-4.6.0-ninja-builder.patch
@@ -0,0 +1,71 @@
+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;
+
diff --git a/kdevelop.spec b/kdevelop.spec
index a34391b..fcd64e1 100644
--- a/kdevelop.spec
+++ b/kdevelop.spec
@@ -5,7 +5,7 @@ Name: kdevelop
Summary: Integrated Development Environment for C++/C
Epoch: 9
Version: 4.6.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv2
URL: http://www.kdevelop.org/
@@ -15,6 +15,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
# remove set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) line
Patch0: kdevelop-4.5.0-no-rpath.patch
+# fix ninja builder
+Patch1: kdevelop-4.6.0-ninja-builder.patch
# upstreamable patches
@@ -89,6 +91,7 @@ Requires: okteta >= 4.10.1
%prep
%setup -q -n kdevelop-%{version}
%patch0 -p1 -b .no-rpath
+%patch1 -p1 -b .ninja-build
%build
mkdir -p %{_target_platform}
@@ -162,6 +165,9 @@ update-mime-database %{_kde4_datadir}/mime &> /dev/null
%changelog
+* Thu Dec 12 2013 Jan Grulich <jgrulich at redhat.com> - 9:4.6.0-2
+- Fix ninja builder (bz#1040801)
+
* Sun Dec 08 2013 Jan Grulich <jgrulich at redhat.com> - 9:4.6.0-1
- Update to 4.6.0
More information about the scm-commits
mailing list