mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-12 14:16:55 -05:00
gnu: Add ocaml-cstruct.
* gnu/packages/ocaml.scm (ocaml-cstruct): New variable.
This commit is contained in:
parent
9059d856d2
commit
0090b89564
1 changed files with 42 additions and 0 deletions
|
@ -3088,3 +3088,45 @@ (define-public ocaml-ocplib-endian
|
||||||
strings, bytes and bigstring (Bigarrys of chars), and provides submodules for
|
strings, bytes and bigstring (Bigarrys of chars), and provides submodules for
|
||||||
big- and little-endian, with their unsafe counter-parts.")
|
big- and little-endian, with their unsafe counter-parts.")
|
||||||
(license license:lgpl2.1)))
|
(license license:lgpl2.1)))
|
||||||
|
|
||||||
|
(define-public ocaml-cstruct
|
||||||
|
(package
|
||||||
|
(name "ocaml-cstruct")
|
||||||
|
(version "2.3.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/mirage/ocaml-cstruct/"
|
||||||
|
"archive/v" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"15qpdc8421shq4pprdas9jznpva45229wkfqbwcxw9khaiiz7949"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))))
|
||||||
|
(build-system ocaml-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:configure-flags
|
||||||
|
(list "--enable-lwt" "--enable-async")
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'install 'link-stubs
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(stubs (string-append out "/lib/ocaml/site-lib/stubslibs"))
|
||||||
|
(lib (string-append out "/lib/ocaml/site-lib/cstruct")))
|
||||||
|
(mkdir-p stubs)
|
||||||
|
(symlink (string-append lib "/dllcstruct_stubs.so")
|
||||||
|
(string-append stubs "/dllcstruct_stubs.so"))))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("ounit" ,ocaml-ounit)
|
||||||
|
("ppx-tools" ,ocaml-ppx-tools)
|
||||||
|
("camlp4" ,camlp4)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("ocplib-endian" ,ocaml-ocplib-endian)
|
||||||
|
("lwt" ,ocaml-lwt)
|
||||||
|
("async" ,ocaml-async)
|
||||||
|
("sexplib" ,ocaml-sexplib)))
|
||||||
|
(home-page "https://github.com/mirage/ocaml-cstruct")
|
||||||
|
(synopsis "Access C structures via a camlp4 extension")
|
||||||
|
(description "Cstruct is a library and syntax extension to make it easier
|
||||||
|
to access C-like structures directly from OCaml. It supports both reading and
|
||||||
|
writing to these structures, and they are accessed via the Bigarray module.")
|
||||||
|
(license license:isc)))
|
||||||
|
|
Loading…
Reference in a new issue