diff --git a/pkgs/development/ocaml-modules/cstruct/default.nix b/pkgs/development/ocaml-modules/cstruct/default.nix index 194a852e7ef9..d62b9397a733 100644 --- a/pkgs/development/ocaml-modules/cstruct/default.nix +++ b/pkgs/development/ocaml-modules/cstruct/default.nix @@ -1,27 +1,31 @@ -{ stdenv, fetchzip, ocaml, findlib, sexplib, ocplib-endian, lwt, camlp4 }: +{stdenv, writeText, fetchurl, ocaml, ocplib-endian, sexplib, findlib, + async ? null, lwt ? null, camlp4}: -let version = "1.6.0"; in +let + ocaml_version = (builtins.parseDrvName ocaml.name).version; +in stdenv.mkDerivation { - name = "ocaml-cstruct-${version}"; + name = "ocaml-cstruct-1.6.0"; - src = fetchzip { - url = "https://github.com/mirage/ocaml-cstruct/archive/v${version}.tar.gz"; - sha256 = "09qw3rhfiq2kkns6660p9cwm5610k72md52a04cy91gr6gsig6ic"; + src = fetchurl { + url = https://github.com/mirage/ocaml-cstruct/archive/v1.6.0.tar.gz; + sha256 = "0f90a1b7a03091cf22a3ccb11a0cce03b6500f064ad3766b5ed81418ac008ece"; }; - buildInputs = [ ocaml findlib lwt camlp4 ]; - propagatedBuildInputs = [ ocplib-endian sexplib ]; - - configureFlags = "--enable-lwt"; + configureFlags = stdenv.lib.strings.concatStringsSep " " ((if lwt != null then ["--enable-lwt"] else []) ++ + (if async != null then ["--enable-async"] else [])); + buildInputs = [ocaml findlib camlp4]; + propagatedBuildInputs = [ocplib-endian sexplib lwt async]; createFindlibDestdir = true; + dontStrip = true; - meta = { - description = "Map OCaml arrays onto C-like structs"; + meta = with stdenv.lib; { homepage = https://github.com/mirage/ocaml-cstruct; + description = "Map OCaml arrays onto C-like structs"; license = stdenv.lib.licenses.isc; - maintainers = with stdenv.lib.maintainers; [ vbgl ]; + maintainers = [ maintainers.vbgl maintainers.ericbmerritt ]; platforms = ocaml.meta.platforms; }; }