Archived
1
0
Fork 0

guix: ocaml: Add package-with-ocaml4.09.

* guix/build-system/ocaml.scm (package-with-ocaml4.09)
(strip-ocaml4.09-variant): New variables.
* gnu/packages/ocaml.scm (ocaml4.09-result, ocaml4.09-csexp)
(ocaml4.09-dune-configurator, ocaml4.09-dune): New variables.
This commit is contained in:
Julien Lepiller 2020-10-15 22:34:38 +02:00
parent 35c02c559e
commit 6ed2741a35
No known key found for this signature in database
GPG key ID: 53D457B2D636EE82
2 changed files with 76 additions and 1 deletions

View file

@ -1315,6 +1315,9 @@ release of Jane Street packages. It reads metadata from @file{dune} files
following a very simple s-expression syntax.") following a very simple s-expression syntax.")
(license license:expat))) (license license:expat)))
(define ocaml4.09-dune-bootstrap
(package-with-ocaml4.09 dune-bootstrap))
(define-public dune-configurator (define-public dune-configurator
(package (package
(inherit dune-bootstrap) (inherit dune-bootstrap)
@ -1327,6 +1330,7 @@ following a very simple s-expression syntax.")
#:tests? #f)) #:tests? #f))
(propagated-inputs (propagated-inputs
`(("ocaml-csexp" ,ocaml-csexp))) `(("ocaml-csexp" ,ocaml-csexp)))
(properties `((ocaml4.09-variant . ,(delay ocaml4.09-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
@ -1339,12 +1343,32 @@ config.h files for instance. Among other things, dune-configurator allows one t
@item generate config.h file @item generate config.h file
@end itemize"))) @end itemize")))
(define-public ocaml4.09-dune-configurator
(package
(inherit dune-configurator)
(name "ocaml4.09-dune-configurator")
(arguments
`(#:package "dune-configurator"
#:tests? #f
#:dune ,ocaml4.09-dune-bootstrap
#:ocaml ,ocaml-4.09
#:findlib ,ocaml4.09-findlib))
(propagated-inputs
`(("ocaml-csexp" ,ocaml4.09-csexp)))))
(define-public dune (define-public dune
(package (package
(inherit dune-bootstrap) (inherit dune-bootstrap)
(propagated-inputs (propagated-inputs
`(("dune-configurator" ,dune-configurator))) `(("dune-configurator" ,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))))))
(define-public ocaml4.09-dune
(package
(inherit ocaml4.09-dune-bootstrap)
(propagated-inputs
`(("dune-configurator" ,dune-configurator)))))
(define-public ocaml4.07-dune (define-public ocaml4.07-dune
(package (package
@ -1385,6 +1409,7 @@ config.h files for instance. Among other things, dune-configurator allows one t
#t))))) #t)))))
(propagated-inputs (propagated-inputs
`(("ocaml-result" ,ocaml-result))) `(("ocaml-result" ,ocaml-result)))
(properties `((ocaml4.09-variant . ,(delay ocaml4.09-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
@ -1401,6 +1426,18 @@ To avoid a dependency on a particular S-expression library, the only
module of this library is parameterised by the type of S-expressions.") module of this library is parameterised by the type of S-expressions.")
(license license:expat))) (license license:expat)))
(define-public ocaml4.09-csexp
(package
(inherit ocaml-csexp)
(name "ocaml4.09-csexp")
(arguments
`(#:ocaml ,ocaml-4.09
#:findlib ,ocaml4.09-findlib
,@(substitute-keyword-arguments (package-arguments ocaml-csexp)
((#:dune _) ocaml4.09-dune-bootstrap))))
(propagated-inputs
`(("ocaml-result" ,ocaml4.09-result)))))
(define-public ocaml-migrate-parsetree (define-public ocaml-migrate-parsetree
(package (package
(name "ocaml-migrate-parsetree") (name "ocaml-migrate-parsetree")
@ -1509,6 +1546,7 @@ powerful.")
(arguments (arguments
`(#:test-target "." `(#:test-target "."
#:dune ,dune-bootstrap)) #:dune ,dune-bootstrap))
(properties `((ocaml4.09-variant . ,(delay ocaml4.09-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
@ -1516,6 +1554,16 @@ staying compatible with older version of OCaml should use the Result module
defined in this library.") defined in this library.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public ocaml4.09-result
(package
(inherit ocaml-result)
(name "ocaml4.09-result")
(arguments
`(#:test-target "."
#:dune ,ocaml4.09-dune-bootstrap
#:ocaml ,ocaml-4.09
#:findlib ,ocaml4.09-findlib))))
(define-public ocaml-topkg (define-public ocaml-topkg
(package (package
(name "ocaml-topkg") (name "ocaml-topkg")

View file

@ -29,6 +29,8 @@
#:export (%ocaml-build-system-modules #:export (%ocaml-build-system-modules
package-with-ocaml4.07 package-with-ocaml4.07
strip-ocaml4.07-variant strip-ocaml4.07-variant
package-with-ocaml4.09
strip-ocaml4.09-variant
default-findlib default-findlib
default-ocaml default-ocaml
lower lower
@ -96,6 +98,18 @@
(let ((module (resolve-interface '(gnu packages ocaml)))) (let ((module (resolve-interface '(gnu packages ocaml))))
(module-ref module 'ocaml4.07-dune))) (module-ref module 'ocaml4.07-dune)))
(define (default-ocaml4.09)
(let ((ocaml (resolve-interface '(gnu packages ocaml))))
(module-ref ocaml 'ocaml-4.09)))
(define (default-ocaml4.09-findlib)
(let ((module (resolve-interface '(gnu packages ocaml))))
(module-ref module 'ocaml4.09-findlib)))
(define (default-ocaml4.09-dune)
(let ((module (resolve-interface '(gnu packages ocaml))))
(module-ref module 'ocaml4.09-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
@ -171,6 +185,19 @@ pre-defined variants."
(inherit p) (inherit p)
(properties (alist-delete 'ocaml4.07-variant (package-properties p))))) (properties (alist-delete 'ocaml4.07-variant (package-properties p)))))
(define package-with-ocaml4.09
(package-with-explicit-ocaml (delay (default-ocaml4.09))
(delay (default-ocaml4.09-findlib))
(delay (default-ocaml4.09-dune))
"ocaml-" "ocaml4.09-"
#:variant-property 'ocaml4.09-variant))
(define (strip-ocaml4.09-variant p)
"Remove the 'ocaml4.09-variant' property from P."
(package
(inherit p)
(properties (alist-delete 'ocaml4.09-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))