You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
4.5 KiB
146 lines
4.5 KiB
From ad9278021a65d423e30765e58110848adda4b13e Mon Sep 17 00:00:00 2001 |
|
From: Jeremie Dimino <jeremie@dimino.org> |
|
Date: Fri, 11 May 2018 15:44:47 +0200 |
|
Subject: [PATCH 3/4] Auto-detect ppx_sexp_conv runtime library |
|
|
|
--- |
|
myocamlbuild.ml | 25 ++++++++++++++++++++++--- |
|
pkg/META | 43 ------------------------------------------- |
|
pkg/META.in | 43 +++++++++++++++++++++++++++++++++++++++++++ |
|
3 files changed, 65 insertions(+), 46 deletions(-) |
|
delete mode 100644 pkg/META |
|
create mode 100644 pkg/META.in |
|
|
|
diff --git a/myocamlbuild.ml b/myocamlbuild.ml |
|
index 2752315..7b29635 100644 |
|
--- a/myocamlbuild.ml |
|
+++ b/myocamlbuild.ml |
|
@@ -1,5 +1,24 @@ |
|
open Ocamlbuild_plugin |
|
|
|
-let () = dispatch Ocb_stubblr.( |
|
- init & ccopt ~tags:["accelerate"] "-DACCELERATE -msse2 -maes" |
|
-) |
|
+let runtime_deps_of_ppx ppx = |
|
+ (Findlib.query "ppx_sexp_conv").dependencies |
|
+ |> List.filter_opt (fun { Findlib.name; _ } -> |
|
+ if name = ppx || name = "ppx_deriving" then |
|
+ None |
|
+ else |
|
+ Some name) |
|
+ |
|
+let () = dispatch (fun hook -> |
|
+ Ocb_stubblr.( |
|
+ init & ccopt ~tags:["accelerate"] "-DACCELERATE -msse2 -maes" |
|
+ ) hook; |
|
+ match hook with |
|
+ | After_rules -> |
|
+ let meta = "pkg/META" in |
|
+ let meta_in = meta ^ ".in" in |
|
+ rule meta ~dep:meta_in ~prod:meta (fun _ _ -> |
|
+ let deps = String.concat " " (runtime_deps_of_ppx "ppx_sexp_conv") in |
|
+ Echo([String.subst "PPX_SEXP_CONV_RUNTIME" deps |
|
+ (Pathname.read meta_in)], |
|
+ meta)) |
|
+ | _ -> ()) |
|
diff --git a/pkg/META b/pkg/META |
|
deleted file mode 100644 |
|
index a7929c7..0000000 |
|
--- a/pkg/META |
|
+++ /dev/null |
|
@@ -1,43 +0,0 @@ |
|
-version = "0.5.4" |
|
-description = "Simple crypto for the modern age" |
|
-requires = "cstruct zarith sexplib ppx_sexp_conv" |
|
-archive(byte) = "nocrypto.cma" |
|
-archive(native) = "nocrypto.cmxa" |
|
-plugin(byte) = "nocrypto.cma" |
|
-plugin(native) = "nocrypto.cmxs" |
|
-xen_linkopts = "-lnocrypto_stubs+mirage-xen" |
|
-freestanding_linkopts = "-lnocrypto_stubs+mirage-freestanding" |
|
-exists_if = "nocrypto.cma" |
|
- |
|
-package "unix" ( |
|
- version = "0.5.4" |
|
- description = "Simple crypto for the modern age" |
|
- requires = "nocrypto unix bytes" |
|
- archive(byte) = "nocrypto_unix.cma" |
|
- archive(native) = "nocrypto_unix.cmxa" |
|
- plugin(byte) = "nocrypto_unix.cma" |
|
- plugin(native) = "nocrypto_unix.cmxs" |
|
- exists_if = "nocrypto_unix.cma" |
|
-) |
|
- |
|
-package "lwt" ( |
|
- version = "0.5.4" |
|
- description = "Simple crypto for the modern age" |
|
- requires = "nocrypto nocrypto.unix lwt.unix cstruct.lwt" |
|
- archive(byte) = "nocrypto_lwt.cma" |
|
- archive(native) = "nocrypto_lwt.cmxa" |
|
- plugin(byte) = "nocrypto_lwt.cma" |
|
- plugin(native) = "nocrypto_lwt.cmxs" |
|
- exists_if = "nocrypto_lwt.cma" |
|
-) |
|
- |
|
-package "mirage" ( |
|
- version = "0.5.4" |
|
- description = "Simple crypto for the modern age" |
|
- requires = "nocrypto lwt mirage-entropy" |
|
- archive(byte) = "nocrypto_mirage.cma" |
|
- archive(native) = "nocrypto_mirage.cmxa" |
|
- plugin(byte) = "nocrypto_mirage.cma" |
|
- plugin(native) = "nocrypto_mirage.cmxs" |
|
- exists_if = "nocrypto_mirage.cma" |
|
-) |
|
diff --git a/pkg/META.in b/pkg/META.in |
|
new file mode 100644 |
|
index 0000000..0b263d7 |
|
--- /dev/null |
|
+++ b/pkg/META.in |
|
@@ -0,0 +1,43 @@ |
|
+version = "0.5.4" |
|
+description = "Simple crypto for the modern age" |
|
+requires = "cstruct zarith sexplib PPX_SEXP_CONV_RUNTIME" |
|
+archive(byte) = "nocrypto.cma" |
|
+archive(native) = "nocrypto.cmxa" |
|
+plugin(byte) = "nocrypto.cma" |
|
+plugin(native) = "nocrypto.cmxs" |
|
+xen_linkopts = "-lnocrypto_stubs+mirage-xen" |
|
+freestanding_linkopts = "-lnocrypto_stubs+mirage-freestanding" |
|
+exists_if = "nocrypto.cma" |
|
+ |
|
+package "unix" ( |
|
+ version = "0.5.4" |
|
+ description = "Simple crypto for the modern age" |
|
+ requires = "nocrypto unix bytes" |
|
+ archive(byte) = "nocrypto_unix.cma" |
|
+ archive(native) = "nocrypto_unix.cmxa" |
|
+ plugin(byte) = "nocrypto_unix.cma" |
|
+ plugin(native) = "nocrypto_unix.cmxs" |
|
+ exists_if = "nocrypto_unix.cma" |
|
+) |
|
+ |
|
+package "lwt" ( |
|
+ version = "0.5.4" |
|
+ description = "Simple crypto for the modern age" |
|
+ requires = "nocrypto nocrypto.unix lwt.unix cstruct.lwt" |
|
+ archive(byte) = "nocrypto_lwt.cma" |
|
+ archive(native) = "nocrypto_lwt.cmxa" |
|
+ plugin(byte) = "nocrypto_lwt.cma" |
|
+ plugin(native) = "nocrypto_lwt.cmxs" |
|
+ exists_if = "nocrypto_lwt.cma" |
|
+) |
|
+ |
|
+package "mirage" ( |
|
+ version = "0.5.4" |
|
+ description = "Simple crypto for the modern age" |
|
+ requires = "nocrypto lwt mirage-entropy" |
|
+ archive(byte) = "nocrypto_mirage.cma" |
|
+ archive(native) = "nocrypto_mirage.cmxa" |
|
+ plugin(byte) = "nocrypto_mirage.cma" |
|
+ plugin(native) = "nocrypto_mirage.cmxs" |
|
+ exists_if = "nocrypto_mirage.cma" |
|
+) |
|
-- |
|
2.18.0 |
|
|
|
|