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.
147 lines
4.5 KiB
147 lines
4.5 KiB
![]()
5 years ago
|
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
|
||
|
|