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.
parent
5f10c3551b
commit
020aca2a1f
|
@ -760,7 +760,7 @@ safety and thread safety guarantees.")
|
||||||
(let ((base-rust rust-1.70))
|
(let ((base-rust rust-1.70))
|
||||||
(package
|
(package
|
||||||
(inherit base-rust)
|
(inherit base-rust)
|
||||||
(outputs (cons "tools" (package-outputs base-rust)))
|
(outputs (cons* "rust-src" "tools" (package-outputs base-rust)))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments base-rust)
|
(substitute-keyword-arguments (package-arguments base-rust)
|
||||||
((#:tests? _ #f)
|
((#:tests? _ #f)
|
||||||
|
@ -919,7 +919,21 @@ safety and thread safety guarantees.")
|
||||||
(format #f "prefix = ~s" (assoc-ref outputs "tools"))))
|
(format #f "prefix = ~s" (assoc-ref outputs "tools"))))
|
||||||
(invoke "./x.py" "install" "clippy")
|
(invoke "./x.py" "install" "clippy")
|
||||||
(invoke "./x.py" "install" "rust-analyzer")
|
(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.
|
;; Add test inputs.
|
||||||
(native-inputs (cons* `("gdb" ,gdb/pinned)
|
(native-inputs (cons* `("gdb" ,gdb/pinned)
|
||||||
`("procps" ,procps)
|
`("procps" ,procps)
|
||||||
|
|
Reference in New Issue