guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

76/276: gnu: rust: Wrap rust-analyzer with rust source.


From: guix-commits
Subject: 76/276: gnu: rust: Wrap rust-analyzer with rust source.
Date: Wed, 18 Oct 2023 04:49:22 -0400 (EDT)

efraim pushed a commit to branch rust-team
in repository guix.

commit 020aca2a1f5720f9ebe45a6c389e2567d15b3885
Author: Efraim Flashner <efraim@flashner.co.il>
AuthorDate: Sun Oct 1 19:48:59 2023 +0300

    gnu: rust: Wrap rust-analyzer with rust source.
    
    * gnu/packages/rust.scm (rust)[outputs]: Add rust-src output.
    [arguments]: Add a phase to install the rust sources and a phase to wrap
    the rust-analyzer binary with the path to the rust sources.
---
 gnu/packages/rust.scm | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 34511f283e..0dc60c8991 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -760,7 +760,7 @@ safety and thread safety guarantees.")
   (let ((base-rust rust-1.70))
     (package
       (inherit base-rust)
-      (outputs (cons "tools" (package-outputs base-rust)))
+      (outputs (cons* "rust-src" "tools" (package-outputs base-rust)))
       (arguments
        (substitute-keyword-arguments (package-arguments base-rust)
          ((#:tests? _ #f)
@@ -919,7 +919,21 @@ safety and thread safety guarantees.")
                     (format #f "prefix = ~s" (assoc-ref outputs "tools"))))
                  (invoke "./x.py" "install" "clippy")
                  (invoke "./x.py" "install" "rust-analyzer")
-                 (invoke "./x.py" "install" "rustfmt")))))))
+                 (invoke "./x.py" "install" "rustfmt")))
+             (add-after 'install 'install-rust-src
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (let ((out (assoc-ref outputs "rust-src"))
+                       (dest "/lib/rustlib/src/rust"))
+                   (mkdir-p (string-append out dest))
+                   (copy-recursively "library" (string-append out dest 
"/library"))
+                   (copy-recursively "src" (string-append out dest "/src")))))
+             (add-after 'install-rust-src 'wrap-rust-analyzer
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (wrap-program (string-append (assoc-ref outputs "tools")
+                                              "/bin/rust-analyzer")
+                   `("RUST_SRC_PATH" ":" =
+                     (,(string-append (assoc-ref outputs "rust-src")
+                                      "/lib/rustlib/src/rust/library"))))))))))
       ;; Add test inputs.
       (native-inputs (cons* `("gdb" ,gdb/pinned)
                             `("procps" ,procps)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]