guix: ocaml: Add package-with-ocaml5.0.

* guix/build-system/ocaml.scm (package-with-ocaml5.0)
(strip-ocaml5.0-variant): New variables.
* gnu/packages/ocaml.scm (ocaml5.0-dune-bootstrap)
(ocaml5.0-dune, ocaml5.0-dune-configurator)
(ocaml5.0-csexp, ocaml5.0-result): New variables.

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
This commit is contained in:
pukkamustard 2022-12-16 13:25:03 +00:00 committed by Julien Lepiller
parent 616e818946
commit 052ec8bcc7
No known key found for this signature in database
GPG key ID: 53D457B2D636EE82
2 changed files with 77 additions and 4 deletions

View file

@ -1820,6 +1820,9 @@ following a very simple s-expression syntax.")
(define ocaml4.09-dune-bootstrap (define ocaml4.09-dune-bootstrap
(package-with-ocaml4.09 dune-bootstrap)) (package-with-ocaml4.09 dune-bootstrap))
(define ocaml5.0-dune-bootstrap
(package-with-ocaml5.0 dune-bootstrap))
(define-public dune-configurator (define-public dune-configurator
(package (package
(inherit dune-bootstrap) (inherit dune-bootstrap)
@ -1840,7 +1843,8 @@ following a very simple s-expression syntax.")
(delete-file-recursively "vendor/pp")))))) (delete-file-recursively "vendor/pp"))))))
(propagated-inputs (propagated-inputs
(list ocaml-csexp)) (list ocaml-csexp))
(properties `((ocaml4.09-variant . ,(delay ocaml4.09-dune-configurator)))) (properties `((ocaml4.09-variant . ,(delay ocaml4.09-dune-configurator))
(ocaml5.0-variant . ,(delay ocaml5.0-dune-configurator))))
(synopsis "Dune helper library for gathering system configuration") (synopsis "Dune helper library for gathering system configuration")
(description "Dune-configurator is a small library that helps writing (description "Dune-configurator is a small library that helps writing
OCaml scripts that test features available on the system, in order to generate OCaml scripts that test features available on the system, in order to generate
@ -1865,13 +1869,25 @@ config.h files for instance. Among other things, dune-configurator allows one t
(propagated-inputs (propagated-inputs
`(("ocaml-csexp" ,ocaml4.09-csexp))))) `(("ocaml-csexp" ,ocaml4.09-csexp)))))
(define-public ocaml5.0-dune-configurator
(package
(inherit dune-configurator)
(name "ocaml5.0-dune-configurator")
(arguments
`(,@(package-arguments dune-configurator)
#:dune ,ocaml5.0-dune-bootstrap
#:ocaml ,ocaml-5.0
#:findlib ,ocaml5.0-findlib))
(propagated-inputs (list ocaml5.0-csexp))))
(define-public dune (define-public dune
(package (package
(inherit dune-bootstrap) (inherit dune-bootstrap)
(propagated-inputs (propagated-inputs
(list dune-configurator)) (list dune-configurator))
(properties `((ocaml4.07-variant . ,(delay ocaml4.07-dune)) (properties `((ocaml4.07-variant . ,(delay ocaml4.07-dune))
(ocaml4.09-variant . ,(delay ocaml4.09-dune)))))) (ocaml4.09-variant . ,(delay ocaml4.09-dune))
(ocaml5.0-variant . ,(delay ocaml5.0-dune))))))
(define-public ocaml4.09-dune (define-public ocaml4.09-dune
(package (package
@ -1893,6 +1909,12 @@ config.h files for instance. Among other things, dune-configurator allows one t
(base32 (base32
"0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr")))))) "0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr"))))))
(define-public ocaml5.0-dune
(package
(inherit ocaml5.0-dune-bootstrap)
(propagated-inputs
(list ocaml5.0-dune-configurator))))
(define-public ocaml-csexp (define-public ocaml-csexp
(package (package
(name "ocaml-csexp") (name "ocaml-csexp")
@ -1918,7 +1940,8 @@ config.h files for instance. Among other things, dune-configurator allows one t
#t))))) #t)))))
(propagated-inputs (propagated-inputs
(list ocaml-result)) (list ocaml-result))
(properties `((ocaml4.09-variant . ,(delay ocaml4.09-csexp)))) (properties `((ocaml4.09-variant . ,(delay ocaml4.09-csexp))
(ocaml5.0-variant . ,(delay ocaml5.0-csexp))))
(home-page "https://github.com/ocaml-dune/csexp") (home-page "https://github.com/ocaml-dune/csexp")
(synopsis "Parsing and printing of S-expressions in Canonical form") (synopsis "Parsing and printing of S-expressions in Canonical form")
(description "This library provides minimal support for Canonical (description "This library provides minimal support for Canonical
@ -1947,6 +1970,18 @@ module of this library is parameterised by the type of S-expressions.")
(propagated-inputs (propagated-inputs
`(("ocaml-result" ,ocaml4.09-result))))) `(("ocaml-result" ,ocaml4.09-result)))))
(define-public ocaml5.0-csexp
(package
(inherit ocaml-csexp)
(name "ocaml5.0-csexp")
(arguments
`(#:ocaml ,ocaml-5.0
#:findlib ,ocaml5.0-findlib
,@(substitute-keyword-arguments (package-arguments ocaml-csexp)
((#:dune _) ocaml5.0-dune-bootstrap))))
(propagated-inputs
`(("ocaml-result" ,ocaml5.0-result)))))
(define-public ocaml-migrate-parsetree (define-public ocaml-migrate-parsetree
(package (package
(name "ocaml-migrate-parsetree") (name "ocaml-migrate-parsetree")
@ -2132,7 +2167,8 @@ bitsrings in Erlang style as primitives to the language.")))
(arguments (arguments
`(#:test-target "." `(#:test-target "."
#:dune ,dune-bootstrap)) #:dune ,dune-bootstrap))
(properties `((ocaml4.09-variant . ,(delay ocaml4.09-result)))) (properties `((ocaml4.09-variant . ,(delay ocaml4.09-result))
(ocaml5.0-variant . ,(delay ocaml5.0-result))))
(home-page "https://github.com/janestreet/result") (home-page "https://github.com/janestreet/result")
(synopsis "Compatibility Result module") (synopsis "Compatibility Result module")
(description "Uses the new result type defined in OCaml >= 4.03 while (description "Uses the new result type defined in OCaml >= 4.03 while
@ -2149,6 +2185,16 @@ defined in this library.")
#:dune ,ocaml4.09-dune-bootstrap #:dune ,ocaml4.09-dune-bootstrap
#:ocaml ,ocaml-4.09 #:ocaml ,ocaml-4.09
#:findlib ,ocaml4.09-findlib)))) #:findlib ,ocaml4.09-findlib))))
(define-public ocaml5.0-result
(package
(inherit ocaml-result)
(name "ocaml5.0-result")
(arguments
`(#:test-target "."
#:dune ,ocaml5.0-dune-bootstrap
#:ocaml ,ocaml-5.0
#:findlib ,ocaml5.0-findlib))))
(define-public ocaml-topkg (define-public ocaml-topkg
(package (package

View file

@ -32,6 +32,8 @@
strip-ocaml4.07-variant strip-ocaml4.07-variant
package-with-ocaml4.09 package-with-ocaml4.09
strip-ocaml4.09-variant strip-ocaml4.09-variant
package-with-ocaml5.0
strip-ocaml5.0-variant
default-findlib default-findlib
default-ocaml default-ocaml
lower lower
@ -111,6 +113,18 @@
(let ((module (resolve-interface '(gnu packages ocaml)))) (let ((module (resolve-interface '(gnu packages ocaml))))
(module-ref module 'ocaml4.09-dune))) (module-ref module 'ocaml4.09-dune)))
(define (default-ocaml5.0)
(let ((ocaml (resolve-interface '(gnu packages ocaml))))
(module-ref ocaml 'ocaml-5.0)))
(define (default-ocaml5.0-findlib)
(let ((module (resolve-interface '(gnu packages ocaml))))
(module-ref module 'ocaml5.0-findlib)))
(define (default-ocaml5.0-dune)
(let ((module (resolve-interface '(gnu packages ocaml))))
(module-ref module 'ocaml5.0-dune)))
(define* (package-with-explicit-ocaml ocaml findlib dune old-prefix new-prefix (define* (package-with-explicit-ocaml ocaml findlib dune old-prefix new-prefix
#:key variant-property) #:key variant-property)
"Return a procedure of one argument, P. The procedure creates a package "Return a procedure of one argument, P. The procedure creates a package
@ -199,6 +213,19 @@ pre-defined variants."
(inherit p) (inherit p)
(properties (alist-delete 'ocaml4.09-variant (package-properties p))))) (properties (alist-delete 'ocaml4.09-variant (package-properties p)))))
(define package-with-ocaml5.0
(package-with-explicit-ocaml (delay (default-ocaml5.0))
(delay (default-ocaml5.0-findlib))
(delay (default-ocaml5.0-dune))
"ocaml-" "ocaml5.0-"
#:variant-property 'ocaml5.0-variant))
(define (strip-ocaml5.0-variant p)
"Remove the 'ocaml5.0-variant' property from P."
(package
(inherit p)
(properties (alist-delete 'ocaml5.0-variant (package-properties p)))))
(define* (lower name (define* (lower name
#:key source inputs native-inputs outputs system target #:key source inputs native-inputs outputs system target
(ocaml (default-ocaml)) (ocaml (default-ocaml))