Date: Sunday, August 26, 2018 @ 08:43:40 Author: arojas Revision: 333020
Load analyzer plugins on demand (FS#59492) Added: qtcreator/trunk/qtcreator-clang-plugins.patch Modified: qtcreator/trunk/PKGBUILD -------------------------------+ PKGBUILD | 17 +++++++++++------ qtcreator-clang-plugins.patch | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 6 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2018-08-26 00:20:00 UTC (rev 333019) +++ PKGBUILD 2018-08-26 08:43:40 UTC (rev 333020) @@ -10,12 +10,12 @@ pkgname=qtcreator pkgver=4.7.0 _clangver=6.0.1 -pkgrel=1 +pkgrel=2 pkgdesc='Lightweight, cross-platform integrated development environment' arch=(x86_64) url='http://qt-project.org' license=(LGPL) -depends=(qt5-tools qt5-quickcontrols qt5-quickcontrols2 qt5-webengine clang=$_clangver qbs) +depends=(qt5-tools qt5-quickcontrols qt5-quickcontrols2 qt5-webengine clang=$_clangver qbs clazy) makedepends=(git mesa llvm) options=(docs) optdepends=('qt5-doc: integrated Qt documentation' @@ -27,10 +27,11 @@ 'git: git support' 'mercurial: mercurial support' 'bzr: bazaar support' - 'valgrind: analyze support' - 'clazy: code analyzer') -source=("http://download.qt.io/official_releases/qtcreator/${pkgver%.*}/$pkgver/qt-creator-opensource-src-$pkgver.tar.xz") -sha256sums=('4b19870bf8d43665deac73a0522a1459d19f5b18b6f52030bb7fbc82d90b759b') + 'valgrind: analyze support') +source=("http://download.qt.io/official_releases/qtcreator/${pkgver%.*}/$pkgver/qt-creator-opensource-src-$pkgver.tar.xz" + qtcreator-clang-plugins.patch) +sha256sums=('4b19870bf8d43665deac73a0522a1459d19f5b18b6f52030bb7fbc82d90b759b' + '6f19fc9d83964a5460d224b3d44ce580553847960181fe0364e2ce26e1efd2e6') prepare() { mkdir -p build @@ -40,6 +41,10 @@ sed -e 's|libexec\/qtcreator|lib\/qtcreator|g' -i qtcreator.pri # use system qbs rm -r 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 + patch -p1 -i ../qtcreator-clang-plugins.patch } build() { Added: qtcreator-clang-plugins.patch =================================================================== --- qtcreator-clang-plugins.patch (rev 0) +++ qtcreator-clang-plugins.patch 2018-08-26 08:43:40 UTC (rev 333020) @@ -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"));