summary refs log tree commit diff
path: root/pkgs/development/tools/qtcreator
diff options
context:
space:
mode:
authorAndrew Newman <deadloko@gmail.com>2019-11-05 20:00:42 +0300
committerDmitry Kalinkin <dmitry.kalinkin@gmail.com>2019-11-05 12:00:42 -0500
commit1eafac2ac66ce63ffc8e29a6b1e846c168ceb39f (patch)
tree2b91a706c715089d8e8db3731cf3a9b5b6038951 /pkgs/development/tools/qtcreator
parenta692029726e85656dec6e350b9c4a90cfa0c43b8 (diff)
downloadnixpkgs-1eafac2ac66ce63ffc8e29a6b1e846c168ceb39f.tar
nixpkgs-1eafac2ac66ce63ffc8e29a6b1e846c168ceb39f.tar.gz
nixpkgs-1eafac2ac66ce63ffc8e29a6b1e846c168ceb39f.tar.bz2
nixpkgs-1eafac2ac66ce63ffc8e29a6b1e846c168ceb39f.tar.lz
nixpkgs-1eafac2ac66ce63ffc8e29a6b1e846c168ceb39f.tar.xz
nixpkgs-1eafac2ac66ce63ffc8e29a6b1e846c168ceb39f.tar.zst
nixpkgs-1eafac2ac66ce63ffc8e29a6b1e846c168ceb39f.zip
qtcreator 4.9.1 -> 4.10.0 (#70573)
Added optional withClangPlugins to disable clang plugins compilation
and, therefore, vendor clang dependency.
Diffstat (limited to 'pkgs/development/tools/qtcreator')
-rw-r--r--pkgs/development/tools/qtcreator/0001-Fix-clang-libcpp-regexp.patch4
-rw-r--r--pkgs/development/tools/qtcreator/0002-Dont-remove-clang-header-paths.patch13
-rw-r--r--pkgs/development/tools/qtcreator/default.nix40
3 files changed, 31 insertions, 26 deletions
diff --git a/pkgs/development/tools/qtcreator/0001-Fix-clang-libcpp-regexp.patch b/pkgs/development/tools/qtcreator/0001-Fix-clang-libcpp-regexp.patch
index 8744b753a6e..39c5c06a285 100644
--- a/pkgs/development/tools/qtcreator/0001-Fix-clang-libcpp-regexp.patch
+++ b/pkgs/development/tools/qtcreator/0001-Fix-clang-libcpp-regexp.patch
@@ -1,8 +1,8 @@
 diff --git a/src/plugins/cpptools/headerpathfilter.cpp b/src/plugins/cpptools/headerpathfilter.cpp
-index b514c46..5f96358 100644
+index e2d1e6a..1a1d839 100644
 --- a/src/plugins/cpptools/headerpathfilter.cpp
 +++ b/src/plugins/cpptools/headerpathfilter.cpp
-@@ -92,8 +92,8 @@ HeaderPaths::iterator resourceIterator(HeaderPaths &headerPaths, bool isMacOs)
+@@ -96,8 +96,8 @@ HeaderPaths::iterator resourceIterator(HeaderPaths &headerPaths, bool isMacOs)
  {
      // include/c++, include/g++, libc++\include and libc++abi\include
      static const QString cppIncludes = R"((.*\/include\/.*(g\+\+|c\+\+).*))"
diff --git a/pkgs/development/tools/qtcreator/0002-Dont-remove-clang-header-paths.patch b/pkgs/development/tools/qtcreator/0002-Dont-remove-clang-header-paths.patch
new file mode 100644
index 00000000000..5cd34991c39
--- /dev/null
+++ b/pkgs/development/tools/qtcreator/0002-Dont-remove-clang-header-paths.patch
@@ -0,0 +1,13 @@
+diff --git a/src/plugins/cpptools/headerpathfilter.cpp b/src/plugins/cpptools/headerpathfilter.cpp
+index e2d1e6a..1a1d839 100644
+--- a/src/plugins/cpptools/headerpathfilter.cpp
++++ b/src/plugins/cpptools/headerpathfilter.cpp
+@@ -134,8 +134,6 @@ void removeClangSystemHeaderPaths(HeaderPaths &headerPaths)
+ 
+ void HeaderPathFilter::tweakHeaderPaths()
+ {
+-    removeClangSystemHeaderPaths(builtInHeaderPaths);
+-
+     auto split = resourceIterator(builtInHeaderPaths,
+                                   projectPart.toolChainTargetTriple.contains("darwin"));
+ 
diff --git a/pkgs/development/tools/qtcreator/default.nix b/pkgs/development/tools/qtcreator/default.nix
index 7e592bf060a..55eb30ab370 100644
--- a/pkgs/development/tools/qtcreator/default.nix
+++ b/pkgs/development/tools/qtcreator/default.nix
@@ -1,14 +1,11 @@
 { mkDerivation, lib, fetchurl, fetchgit, fetchpatch
 , qtbase, qtquickcontrols, qtscript, qtdeclarative, qmake, llvmPackages_8
-, withDocumentation ? false
+, withDocumentation ? false, withClangPlugins ? true 
 }:
 
 with lib;
 
 let
-  baseVersion = "4.9";
-  revision = "1";
-
   # Fetch clang from qt vendor, this contains submodules like this:
   # clang<-clang-tools-extra<-clazy.
   clang_qt_vendor = llvmPackages_8.clang-unwrapped.overrideAttrs (oldAttrs: {
@@ -23,35 +20,28 @@ in
 
 mkDerivation rec {
   pname = "qtcreator";
-  version = "${baseVersion}.${revision}";
+  version = "4.10.0";
+  baseVersion = builtins.concatStringsSep "." (lib.take 2 (builtins.splitVersion version));
 
   src = fetchurl {
     url = "http://download.qt-project.org/official_releases/${pname}/${baseVersion}/${version}/qt-creator-opensource-src-${version}.tar.xz";
-    sha256 = "10ddp1365rf0z4bs7yzc9hajisp3j6mzjshyd0vpi4ki126j5f3r";
+    sha256 = "12hgxdghz05ms4zl8prz2w8l66vmgw1qw2gsmmwqi2rdaay3lpcg";
   };
 
-  buildInputs = [ qtbase qtscript qtquickcontrols qtdeclarative llvmPackages_8.libclang clang_qt_vendor llvmPackages_8.llvm ];
+  buildInputs = [ qtbase qtscript qtquickcontrols qtdeclarative ] ++ 
+    optionals withClangPlugins [ llvmPackages_8.libclang 
+                                 clang_qt_vendor 
+                                 llvmPackages_8.llvm ];
 
   nativeBuildInputs = [ qmake ];
 
   # 0001-Fix-clang-libcpp-regexp.patch is for fixing regexp that is used to
   # find clang libc++ library include paths. By default it's not covering paths
   # like libc++-version, which is default name for libc++ folder in nixos.
+  # ./0002-Dont-remove-clang-header-paths.patch is for forcing qtcreator to not 
+  # remove system clang include paths.
   patches = [ ./0001-Fix-clang-libcpp-regexp.patch
-
-    # Fix clazy plugin name. This plugin was renamed with clang8
-    # release, and patch didn't make it into 4.9.1 release. Should be removed
-    # on qtcreator update, if this problem is fixed.
-    (fetchpatch {
-      url = "https://code.qt.io/cgit/qt-creator/qt-creator.git/patch/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp?id=53c407bc0c87e0b65b537bf26836ddd8e00ead82";
-      sha256 = "1lanp7jg0x8jffajb852q8p4r34facg41l410xsz6s1k91jskbi9";
-    })
-
-    (fetchpatch {
-      url = "https://code.qt.io/cgit/qt-creator/qt-creator.git/patch/src/plugins/clangtools/clangtidyclazyrunner.cpp?id=53c407bc0c87e0b65b537bf26836ddd8e00ead82";
-      sha256 = "1rl0rc2l297lpfhhawvkkmj77zb081hhp0bbi7nnykf3q9ch0clh";
-    })
-  ];
+              ./0002-Dont-remove-clang-header-paths.patch ];
 
   doCheck = true;
 
@@ -63,8 +53,8 @@ mkDerivation rec {
 
   preConfigure = ''
     substituteInPlace src/plugins/plugins.pro \
-      --replace '$$[QT_INSTALL_QML]/QtQuick/Controls' '${qtquickcontrols}/${qtbase.qtQmlPrefix}/QtQuick/Controls'
-
+      --replace '$$[QT_INSTALL_QML]/QtQuick/Controls' '${qtquickcontrols}/${qtbase.qtQmlPrefix}/QtQuick/Controls' 
+    '' + optionalString withClangPlugins ''
     # Fix paths for llvm/clang includes directories.
     substituteInPlace src/shared/clang/clang_defines.pri \
       --replace '$$clean_path($${LLVM_LIBDIR}/clang/$${LLVM_VERSION}/include)' '${clang_qt_vendor}/lib/clang/8.0.0/include' \
@@ -77,7 +67,9 @@ mkDerivation rec {
     # Fix paths to libclang library.
     substituteInPlace src/shared/clang/clang_installation.pri \
       --replace 'LIBCLANG_LIBS = -L$${LLVM_LIBDIR}' 'LIBCLANG_LIBS = -L${llvmPackages_8.libclang}/lib' \
-      --replace 'LIBCLANG_LIBS += $${CLANG_LIB}' 'LIBCLANG_LIBS += -lclang'
+      --replace 'LIBCLANG_LIBS += $${CLANG_LIB}' 'LIBCLANG_LIBS += -lclang' \
+      --replace 'LIBTOOLING_LIBS = -L$${LLVM_LIBDIR}' 'LIBTOOLING_LIBS = -L${clang_qt_vendor}/lib' \
+      --replace 'LLVM_CXXFLAGS ~= s,-gsplit-dwarf,' '${lib.concatStringsSep "\n" ["LLVM_CXXFLAGS ~= s,-gsplit-dwarf," "    LLVM_CXXFLAGS += -fno-rtti"]}'
   '';
 
   preBuild = optional withDocumentation ''