summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-11-06 10:22:03 +0100
committerLudovic Courtès <ludo@gnu.org>2019-11-06 12:12:51 +0100
commit8cf20d73587769039511a048446ebfd02c5929c9 (patch)
treeb50de6af222fa3b975b0d514303030d987ad15ad
parentb0a7c0c3e1cb881c1ae693d0da32aba315525aab (diff)
downloadguix-8cf20d73587769039511a048446ebfd02c5929c9.tar.gz
gnu: Add KCacheGrind.
* gnu/packages/kde.scm (kcachegrind): New variable.
-rw-r--r--gnu/packages/kde.scm43
1 files changed, 43 insertions, 0 deletions
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 2d72c39436..ab5118583e 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -627,3 +628,45 @@ communicate with each other.  Here's a few things KDE Connect can do:
      "Kqtquickcharts is a QtQuick plugin to render beautiful and interactive
 charts.")
     (license license:lgpl2.1+)))
+
+(define-public kcachegrind
+  (package
+    (name "kcachegrind")
+    (version "19.04.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kde/stable/applications/" version
+                                  "/src/kcachegrind-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1hhsk64yp6q2xh8j269j4wp9y24ggmii861r6gf02mj1mbn2p1jb"))))
+    (build-system cmake-build-system)
+    (native-inputs
+     `(("extra-cmake-modules" ,extra-cmake-modules)
+       ("perl" ,perl)
+       ("python" ,python)
+       ("qttools" ,qttools)
+       ("kdoctools" ,kdoctools)))
+    (inputs
+     `(("qtbase" ,qtbase)
+       ("karchive" ,karchive)
+       ("ki18n" ,ki18n)
+       ("kio" ,kio)
+       ("kdbusaddons" ,kdbusaddons)))
+    ;; Note: The 'hotshot2calltree' and 'pprof2calltree' scripts depend on
+    ;; Python and PHP, respectively.  These are optional and we ignore them
+    ;; for now.
+    (home-page "https://kcachegrind.github.io/html/Home.html")
+    (synopsis "Visualize profiles produces by Valgrind's Cachegrind tool")
+    (description
+     "The data files generated by the Callgrind of Valgrind, an application
+profiler, can be loaded into KCachegrind for browsing the performance results.
+There is also a command-line tool to get ASCII reports from data files without
+the need to use KCachegrind.
+
+The format of Callgrind output is documented.  With conversion scripts,
+KCachegrind is able to visualize output of other profilers like OProfile, a
+system-wide profiler for Linux using statistical sampling with hardware
+performance counters.  There also exist converters for profiling output of
+Python, PHP, and Perl.")
+    (license license:gpl2)))