summary refs log tree commit diff
path: root/gnu/packages/code.scm
diff options
context:
space:
mode:
authorJulien Lepiller <julien@lepiller.eu>2020-07-11 23:16:27 +0200
committerJulien Lepiller <julien@lepiller.eu>2020-07-11 23:47:37 +0200
commit89c9e647489d9114861082f27f4deb1f00fdf871 (patch)
treeb64969f605af4c587a98ff554430f8a94e2718d0 /gnu/packages/code.scm
parent12d69fc5745759b11d6e19cdcdad64d34ecd9dd4 (diff)
downloadguix-89c9e647489d9114861082f27f4deb1f00fdf871.tar.gz
gnu: Add kcov.
* gnu/packages/code.scm (kcov): New variable.
Diffstat (limited to 'gnu/packages/code.scm')
-rw-r--r--gnu/packages/code.scm44
1 files changed, 44 insertions, 0 deletions
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 6334c97ef2..7a1dfa5c8c 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2019 Hartmut Goebel <h.goebel@goebel-consult.de>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -47,6 +48,8 @@
   #:use-module (gnu packages c)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages elf)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages graphviz)
@@ -522,6 +525,47 @@ textual @command{gcov} output to implement the following enhanced
 functionality such as HTML output.")
       (license license:gpl2+))))
 
+(define-public kcov
+  (package
+    (name "kcov")
+    (version "38")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/SimonKagstrom/kcov")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0zqg21xwivi16csl6a5wby6679ny01bjaw4am3y4qcgjdyihifp8"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ;no test target
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-/bin/bash-references
+           (lambda _
+             (substitute* (find-files "src" ".*\\.cc?$")
+               (("/bin/bash") (which "bash"))
+               (("/bin/sh") (which "sh")))
+             #t)))))
+    (inputs
+     `(("curl" ,curl)
+       ("elfutils" ,elfutils)
+       ("libelf" ,libelf)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("python" ,python)))
+    (home-page "https://github.com/SimonKagstrom/kcov")
+    (synopsis "Code coverage tester for compiled languages, Python and Bash")
+    (description "Kcov is a FreeBSD/Linux/OSX code coverage tester for compiled
+languages, Python and Bash.  Kcov was originally a fork of Bcov, but has since
+evolved to support a large feature set in addition to that of Bcov.
+
+Kcov uses DWARF debugging information for compiled programs to make it
+possible to collect coverage information without special compiler switches.")
+    (license license:gpl2+)))
+
 (define-public rtags
   (package
     (name "rtags")