summary refs log tree commit diff
path: root/gnu/packages/code.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/code.scm')
-rw-r--r--gnu/packages/code.scm53
1 files changed, 35 insertions, 18 deletions
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 042ea73a8c..a267688626 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -26,12 +26,13 @@
 (define-module (gnu packages code)
   #:use-module (guix packages)
   #:use-module (guix download)
-  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
+  #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages gcc)
@@ -43,6 +44,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages lua)
   #:use-module (gnu packages bash))
 
 ;;; Tools to deal with source code: metrics, cross-references, etc.
@@ -393,28 +395,43 @@ functionality such as HTML output.")
     (name "rtags")
     (version "2.16")
     (home-page "https://github.com/Andersbakken/rtags")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url home-page)
-                    (commit "8ef7554852541eced514c56d5e39d6073f7a2ef9")
-
-                    ;; FIXME: This fetches bundled copies of Lua, RCT, and
-                    ;; Selene.
-                    (recursive? #t)))
-              (sha256
-               (base32
-                "12r7lsqdmcbs9864a6dpblvifqvmfxhvxippyhfnnm2ai5ra80nc"))
-              (file-name (git-file-name name version))))
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append home-page "/archive/v" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (patches (search-patches "rtags-separate-rct.patch"))
+       (modules '((guix build utils)))
+       (snippet
+        ;; Part of spliting rct with rtags.
+        ;; Substitute #include "rct/header.h" with #include <rct/header.h>.
+        '(with-directory-excursion "src"
+           (delete-file-recursively "rct")        ;remove bundled copy
+           (let ((files (find-files "." ".*\\.cpp|.*\\.h")))
+             (substitute* files
+               (("#include ?\"rct/(.*.h)\"" all header)
+                (string-append "#include <rct/" header ">"))))))
+       (sha256
+        (base32
+         "17rkci3mmiw93qc32b9x76pg57b0lx80avr6wnmh190jx8n3v3wy"))))
     (build-system cmake-build-system)
     (arguments
-     '(#:configure-flags '("-DBUILD_TESTING=FALSE"
-                           "-DRTAGS_NO_ELISP_FILES=1")
+     '(#:configure-flags
+       '("-DRTAGS_NO_ELISP_FILES=1"
+         "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
+         "-DCMAKE_CXX_FLAGS=-std=c++11"
+         "-DBUILD_TESTING=FALSE")
        #:tests? #f))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
     (inputs
-     `(("clang" ,clang)
+     `(("bash-completion" ,bash-completion)
+       ("clang" ,clang)
        ("llvm" ,llvm)
-       ("bash-completion" ,bash-completion)))
+       ("lua" ,lua)
+       ("rct" ,rct)
+       ("selene" ,selene)))
     (synopsis "Indexer for the C language family with Emacs integration")
     (description
      "RTags is a client/server application that indexes C/C++ code and keeps a