1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-05-25 18:41:54 +02:00

gnu: Add rust-c2rust-ast-exporter.

* gnu/packages/c2rust.scm (%tinycbor-source): New variable.
(rust-c2rust-ast-exporter-0.18): New variable.

Change-Id: I1a9944dd90760e09ab05e06f451623ad62570285
This commit is contained in:
Danny Milosavljevic
2024-12-21 19:58:49 +01:00
parent a50201fdc1
commit aeec2da87a
+58
View File
@@ -146,3 +146,61 @@
(description
"This package provides C2Rust utilities related to build paths, primarily at build time.")
(license license:bsd-3)))
;; Note: It has expat license.
;; Note: That is supposedly the (unreleased) version 0.6.3.
(define %tinycbor-source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/intel/tinycbor.git")
(commit "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7")))
(sha256
(base32
"0w38lzj0rz36skc1cn3shllc82c7nn32h88frb8f164a8haq3hkw"))))
(define-public rust-c2rust-ast-exporter-0.18
(package
(name "rust-c2rust-ast-exporter")
(version "0.18.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "c2rust-ast-exporter" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1m589a7jld5mi7zv9z179p5j90zh7mkhbmj05mgx6bbp6m45kx7p"))
(patches (search-patches "c2rust-ast-exporter-local-search.patch"))
(modules '((guix build utils)))))
(build-system cargo-build-system)
(native-inputs
`(("cmake" ,cmake)
("clang" ,clang)))
(propagated-inputs
`(("tinycbor-src" ,%tinycbor-source)))
(inputs
(list llvm))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bundle-tinycbor
(lambda* (#:key inputs #:allow-other-keys)
;; The build process will slightly patch the sources.
(copy-recursively (assoc-ref inputs "tinycbor-src")
"/tmp/tinycbor")
(setenv "CMAKE_TINYCBOR_SOURCE_DIR" "/tmp/tinycbor"))))
#:skip-build? #f
#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.65)
("rust-c2rust-build-paths" ,rust-c2rust-build-paths-0.18)
("rust-clang-sys" ,rust-clang-sys-1.8)
("rust-cmake" ,rust-cmake-0.1)
("rust-env-logger" ,rust-env-logger-0.10)
("rust-libc" ,rust-libc-0.2)
("rust-serde" ,rust-serde-1)
("rust-serde-bytes" ,rust-serde-bytes-0.11)
("rust-serde-cbor" ,rust-serde-cbor-0.11))))
(home-page "https://c2rust.com/")
(synopsis "Clang AST extraction API for use in the C2Rust project")
(description
"This package provides Clang AST extraction API for use in the C2Rust project.")
(license license:bsd-3)))