summaryrefslogtreecommitdiff
path: root/libre/qtcreator
diff options
context:
space:
mode:
authorFreemor <freemor@freemor.ca>2018-10-04 17:20:36 -0300
committerFreemor <freemor@freemor.ca>2018-10-04 17:20:36 -0300
commit9d88a917f22e0e5867005e677c33b927633d4358 (patch)
tree11f16fe30f6a4061c0d88fdf04aabe39bc14376f /libre/qtcreator
parentbffd30e9f286f86421868e953a1fde5f3554e6c9 (diff)
downloadabslibre-9d88a917f22e0e5867005e677c33b927633d4358.tar.gz
abslibre-9d88a917f22e0e5867005e677c33b927633d4358.tar.bz2
abslibre-9d88a917f22e0e5867005e677c33b927633d4358.zip
Update [qtcreator] to 4.7.1 and rebuild against clang 7.0.0 for x86_64 (i686/ARM not on clang 7.0.0 yet)
Diffstat (limited to 'libre/qtcreator')
-rw-r--r--libre/qtcreator/PKGBUILD30
-rw-r--r--libre/qtcreator/qtcreator-clang-plugins.patch40
-rw-r--r--libre/qtcreator/qtcreator-clang7.patch13
-rw-r--r--libre/qtcreator/qtcreatorbug-19367a.patch36
-rw-r--r--libre/qtcreator/qtcreatorbug-19367b.patch42
5 files changed, 153 insertions, 8 deletions
diff --git a/libre/qtcreator/PKGBUILD b/libre/qtcreator/PKGBUILD
index 3b84da5b7..49f93c532 100644
--- a/libre/qtcreator/PKGBUILD
+++ b/libre/qtcreator/PKGBUILD
@@ -14,8 +14,8 @@
pkgname=qtcreator
-pkgver=4.7.0
-_clangver=6.0.1
+pkgver=4.7.1
+_clangver=7.0.0
pkgrel=1
pkgrel+=.parabola1
pkgdesc='Lightweight, cross-platform integrated development environment'
@@ -26,7 +26,7 @@ url='http://qt-project.org'
license=(LGPL)
depends=(qt5-tools qt5-quickcontrols qt5-quickcontrols2 clang=$_clangver qbs)
-makedepends=(git mesa llvm)
+makedepends=(git mesa llvm python)
options=(docs)
optdepends=('qt5-doc: integrated Qt documentation'
'qt5-examples: welcome page examples'
@@ -38,15 +38,20 @@ optdepends=('qt5-doc: integrated Qt documentation'
'mercurial: mercurial support'
'bzr: bazaar support'
'valgrind: analyze support')
-
-source=("http://download.qt.io/official_releases/qtcreator/${pkgver%.*}/$pkgver/qt-creator-opensource-src-$pkgver.tar.xz")
+source=("http://download.qt.io/official_releases/qtcreator/${pkgver%.*}/$pkgver/qt-creator-opensource-src-$pkgver.tar.xz"
+ qtcreator-clang-plugins.patch qtcreator-clang7.patch
+ qtcreatorbug-19367a.patch::"http://code.qt.io/cgit/qt-creator/qt-creator.git/patch/?id=807b0f78"
+ qtcreatorbug-19367b.patch::"http://code.qt.io/cgit/qt-creator/qt-creator.git/patch/?id=813c1685")
source+=('0001-Fix-Allow-qt-creator-to-build-on-arm-aarch32-and-aar.patch'
'libre.patch')
-sha256sums=('4b19870bf8d43665deac73a0522a1459d19f5b18b6f52030bb7fbc82d90b759b'
+sha256sums=('c98254336953f637015f14b8b4ddb5e274454a5416fd20dd09747a6e50762565'
+ '6f19fc9d83964a5460d224b3d44ce580553847960181fe0364e2ce26e1efd2e6'
+ '88b78c8ebd72cdad8f59bba8172cc5d1f3f9577e2bb31d841d5cabdd76eba36c'
+ 'a7a00a390fb46f13d53055b1862dcd916deb595dbba20c2340662cab51e5a8c1'
+ '89a3fff5e398f11367ab060d910098c295968e909fcca3f35d30073cd80cbf03'
'56e6876f41ee8909ee197f7ab5a2bb18ad5a7fe26ce490a48cdf062fa199ffc6'
'53d119a70047c6b64d8227e65d402d308017cc1d99d8886421bf2da4f7407c80')
-
prepare() {
mkdir -p build
@@ -55,9 +60,18 @@ prepare() {
# use system qbs
rm -r qt-creator-opensource-src-${pkgver}/src/shared/qbs
+ # Load analyzer plugins on demand, since upstream clang doesn't link to all plugins
+ # see http://code.qt.io/cgit/clang/clang.git/commit/?id=7f349701d3ea0c47be3a43e265699dddd3fd55cf
+ # and https://bugs.archlinux.org/task/59492
+ cd qt-creator-opensource-src-${pkgver}
+ patch -p1 -i "$srcdir"/qtcreator-clang-plugins.patch
+ # Don't use unreleased API when building against clang 7
+ patch -p1 -i "$srcdir"/qtcreator-clang7.patch
+ # https://bugreports.qt.io/browse/QTCREATORBUG-19367
+ patch -p1 -i "$srcdir"/qtcreatorbug-19367a.patch
+ patch -p1 -i "$srcdir"/qtcreatorbug-19367b.patch
# remove qt5-webengine support
- cd qt-creator-opensource-src-${pkgver}
patch -Np1 -i "$srcdir"/libre.patch
rm -rv src/plugins/help/webenginehelpviewer.{cpp,h}
diff --git a/libre/qtcreator/qtcreator-clang-plugins.patch b/libre/qtcreator/qtcreator-clang-plugins.patch
new file mode 100644
index 000000000..2585f29db
--- /dev/null
+++ b/libre/qtcreator/qtcreator-clang-plugins.patch
@@ -0,0 +1,40 @@
+diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
+index 25054f14ec..b0e17c3260 100644
+--- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
++++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
+@@ -524,6 +524,7 @@ private:
+ if (tidyMode == Mode::Disabled)
+ return;
+
++ addXclangArg("-load", "libclangTidyPlugin.so");
+ addXclangArg("-add-plugin", "clang-tidy");
+
+ if (tidyMode == Mode::File)
+@@ -539,6 +540,7 @@ private:
+ if (checks.isEmpty())
+ return;
+
++ addXclangArg("-load", "ClangLazy.so");
+ addXclangArg("-add-plugin", "clang-lazy");
+ addXclangArg("-plugin-arg-clang-lazy", "enable-all-fixits");
+ addXclangArg("-plugin-arg-clang-lazy", "no-autowrite-fixits");
+diff --git a/src/plugins/clangtools/clangtidyclazyrunner.cpp b/src/plugins/clangtools/clangtidyclazyrunner.cpp
+index d91724392e..75e1692f49 100644
+--- a/src/plugins/clangtools/clangtidyclazyrunner.cpp
++++ b/src/plugins/clangtools/clangtidyclazyrunner.cpp
+@@ -83,6 +83,7 @@ QStringList ClangTidyClazyRunner::constructCommandLineArguments(const QStringLis
+
+ const ClangDiagnosticConfig::TidyMode tidyMode = m_diagnosticConfig.clangTidyMode();
+ if (tidyMode != ClangDiagnosticConfig::TidyMode::Disabled) {
++ addXclangArg(arguments, QString("-load"), QString("libclangTidyPlugin.so"));
+ addXclangArg(arguments, QString("-add-plugin"), QString("clang-tidy"));
+ if (tidyMode != ClangDiagnosticConfig::TidyMode::File) {
+ const QString tidyChecks = m_diagnosticConfig.clangTidyChecks();
+@@ -92,6 +93,7 @@ QStringList ClangTidyClazyRunner::constructCommandLineArguments(const QStringLis
+
+ const QString clazyChecks = m_diagnosticConfig.clazyChecks();
+ if (!clazyChecks.isEmpty()) {
++ addXclangArg(arguments, QString("-load"), QString("ClangLazy.so"));
+ addXclangArg(arguments, QString("-add-plugin"), QString("clang-lazy"));
+ addXclangArg(arguments, QString("-plugin-arg-clang-lazy"), QString("enable-all-fixits"));
+ addXclangArg(arguments, QString("-plugin-arg-clang-lazy"), QString("no-autowrite-fixits"));
diff --git a/libre/qtcreator/qtcreator-clang7.patch b/libre/qtcreator/qtcreator-clang7.patch
new file mode 100644
index 000000000..378b114b8
--- /dev/null
+++ b/libre/qtcreator/qtcreator-clang7.patch
@@ -0,0 +1,13 @@
+diff --git a/src/tools/clangbackend/source/clangbackend_global.h b/src/tools/clangbackend/source/clangbackend_global.h
+index 658e2e8fb1..5c27224ae4 100644
+--- a/src/tools/clangbackend/source/clangbackend_global.h
++++ b/src/tools/clangbackend/source/clangbackend_global.h
+@@ -52,7 +52,7 @@ enum class PreferredTranslationUnit
+ #endif
+
+ // CLANG-UPGRADE-CHECK: Remove IS_SKIPWARNINGSFROMINCLUDEDFILES_SUPPORTED once we require clang >= 7.0
+-#if defined(CINDEX_VERSION_HAS_SKIPWARNINGSFROMINCLUDEDFILES_BACKPORTED) || CINDEX_VERSION_MINOR >= 46
++#if defined(CINDEX_VERSION_HAS_SKIPWARNINGSFROMINCLUDEDFILES_BACKPORTED)
+ # define IS_SKIPWARNINGSFROMINCLUDEDFILES_SUPPORTED
+ #endif
+
diff --git a/libre/qtcreator/qtcreatorbug-19367a.patch b/libre/qtcreator/qtcreatorbug-19367a.patch
new file mode 100644
index 000000000..397deda18
--- /dev/null
+++ b/libre/qtcreator/qtcreatorbug-19367a.patch
@@ -0,0 +1,36 @@
+From 807b0f78fc89409559ecc22229650a883def436d Mon Sep 17 00:00:00 2001
+From: Jonathan Liu <net147@gmail.com>
+Date: Thu, 20 Sep 2018 13:46:05 +1000
+Subject: ProjectExplorer: Do not add too many newlines for remote processes
+
+Do not add newlines when remote process output gets flushed.
+
+Task-number: QTCREATORBUG-19367
+Change-Id: I9e878695279404d436264abd580884fb6a9e91ad
+Reviewed-by: hjk <hjk@qt.io>
+---
+ src/plugins/projectexplorer/runconfiguration.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp
+index 438d631c78..f2f5871a5a 100644
+--- a/src/plugins/projectexplorer/runconfiguration.cpp
++++ b/src/plugins/projectexplorer/runconfiguration.cpp
+@@ -1659,12 +1659,12 @@ void SimpleTargetRunner::start()
+
+ connect(&m_launcher, &ApplicationLauncher::remoteStderr,
+ this, [this](const QString &output) {
+- appendMessage(output, Utils::StdErrFormatSameLine);
++ appendMessage(output, Utils::StdErrFormatSameLine, false);
+ });
+
+ connect(&m_launcher, &ApplicationLauncher::remoteStdout,
+ this, [this](const QString &output) {
+- appendMessage(output, Utils::StdOutFormatSameLine);
++ appendMessage(output, Utils::StdOutFormatSameLine, false);
+ });
+
+ connect(&m_launcher, &ApplicationLauncher::finished,
+--
+cgit v1.2.1
+
diff --git a/libre/qtcreator/qtcreatorbug-19367b.patch b/libre/qtcreator/qtcreatorbug-19367b.patch
new file mode 100644
index 000000000..7603877cd
--- /dev/null
+++ b/libre/qtcreator/qtcreatorbug-19367b.patch
@@ -0,0 +1,42 @@
+From 813c16854df6be7fd1f1a8013d0b180f6248e5ab Mon Sep 17 00:00:00 2001
+From: Jonathan Liu <net147@gmail.com>
+Date: Thu, 20 Sep 2018 13:48:58 +1000
+Subject: SshDeviceProcess: Don't emit readyRead signals if no data available
+
+Task-number: QTCREATORBUG-19367
+Change-Id: I477800b2e2060748c2b5f9fde3acc91d9f5ae176
+Reviewed-by: hjk <hjk@qt.io>
+Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
+---
+ src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp b/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp
+index b34e0ce805..3bb813d55d 100644
+--- a/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp
++++ b/src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp
+@@ -245,13 +245,19 @@ void SshDeviceProcess::handleProcessFinished(int exitStatus)
+
+ void SshDeviceProcess::handleStdout()
+ {
+- d->stdOut += d->process->readAllStandardOutput();
++ QByteArray output = d->process->readAllStandardOutput();
++ if (output.isEmpty())
++ return;
++ d->stdOut += output;
+ emit readyReadStandardOutput();
+ }
+
+ void SshDeviceProcess::handleStderr()
+ {
+- d->stdErr += d->process->readAllStandardError();
++ QByteArray output = d->process->readAllStandardError();
++ if (output.isEmpty())
++ return;
++ d->stdErr += output;
+ emit readyReadStandardError();
+ }
+
+--
+cgit v1.2.1
+