Skip to content

Commit

Permalink
httpaf-mirage: replace dune file written in OCaml with select form (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
anmonteiro committed May 11, 2020
1 parent de6a735 commit 694e20d
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 33 deletions.
6 changes: 6 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
Unreleased
--------------

- httpaf-lwt-unix: replace the `dune` file (previously written in OCaml) with a
`(select)` form to avoid depending on `ocamlfind`
([#18](https://github.com/anmonteiro/httpaf/pull/18))
- httpaf-mirage: depend on `mirage-conduit` instead of `conduit-mirage`,
effectively placing a lower bound of OCaml 4.07 on httpaf-mirage
([#16](https://github.com/anmonteiro/httpaf/pull/16))
- httpaf-lwt, httpaf-lwt-unix, httpaf-mirage: deduplicate interface code via a
common `Httpaf_lwt_intf` interface
([#13](https://github.com/anmonteiro/httpaf/pull/13))
Expand Down
2 changes: 1 addition & 1 deletion httpaf-lwt.opam
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ build: [
depends: [
"ocaml" {>= "4.03.0"}
"httpaf"
"dune" {build}
"dune"
"lwt"
]
synopsis: "Lwt support for http/af"
2 changes: 1 addition & 1 deletion httpaf-mirage.opam
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ depends: [
"httpaf-lwt"
"mirage-conduit"
"cstruct"
"dune" {build}
"dune"
"lwt"
]
pin-depends: [
Expand Down
46 changes: 15 additions & 31 deletions lwt-unix/dune
Original file line number Diff line number Diff line change
@@ -1,37 +1,21 @@
(* -*- tuareg -*- *)
(* This was inspired by `conduit-lwt-unix`'s dune file *)

let v ~ssl ~tls () =
let ssl, ssl_d =
if ssl then "ssl_io_real", "lwt_ssl "
else "ssl_io_dummy", ""
in
let tls, tls_d =
if tls then "tls_io_real", "tls.lwt "
else "tls_io_dummy", ""
in
Printf.sprintf {|
(rule (copy %s.ml ssl_io.ml))
(rule (copy %s.ml tls_io.ml))

(library
(name httpaf_lwt_unix)
(public_name httpaf-lwt-unix)
(libraries faraday-lwt-unix httpaf httpaf-lwt lwt.unix %s%s)
(libraries
faraday-lwt-unix
httpaf
httpaf-lwt
lwt.unix
(select
ssl_io.ml
from
(lwt_ssl -> ssl_io_real.ml)
(-> ssl_io_dummy.ml))
(select
tls_io.ml
from
(tls.lwt -> tls_io_real.ml)
(-> tls_io_dummy.ml)))
(modules httpaf_lwt_unix tls_io ssl_io)
(flags
(:standard -safe-string)))
|} ssl tls ssl_d tls_d

let main () =
let is_installed s = Printf.kprintf Sys.command "ocamlfind query %s" s = 0 in
let ssl = is_installed "lwt_ssl" in
let tls = is_installed "tls.lwt" in
Printf.printf
"Configuration\n\
\ ssl : %b\n\
\ tls : %b\n%!"
ssl tls;
v ~ssl ~tls ()

let () = Jbuild_plugin.V1.send @@ main ()

0 comments on commit 694e20d

Please sign in to comment.