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 | |
| 
 | |
| 
 |