ocamlPackages.cstruct: 2.3.2 -> 3.0.2

This commit is contained in:
Vincent Laporte
2017-11-27 19:08:40 +00:00
parent e7f4979270
commit bfc0959511
10 changed files with 115 additions and 45 deletions

View File

@@ -0,0 +1,36 @@
{ stdenv, writeText, fetchFromGitHub, ocaml, ocamlbuild, ocplib-endian, sexplib, findlib, ppx_tools
, async ? null, lwt ? null
}:
assert stdenv.lib.versionAtLeast ocaml.version "4.01";
let version = "1.9.0"; in
let opt = b: "--${if b != null then "en" else "dis"}able"; in
stdenv.mkDerivation {
name = "ocaml${ocaml.version}-cstruct-${version}";
src = fetchFromGitHub {
owner = "mirage";
repo = "ocaml-cstruct";
rev = "v${version}";
sha256 = "1c1j21zgmxi9spq23imy7byn50qr7hlds1cfpzxlsx9dp309jngy";
};
configureFlags = [ "${opt lwt}-lwt" "${opt async}-async" "${opt ppx_tools}-ppx" ];
buildInputs = [ ocaml findlib ocamlbuild ppx_tools lwt async ];
propagatedBuildInputs = [ ocplib-endian sexplib ];
createFindlibDestdir = true;
dontStrip = true;
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 = [ maintainers.vbgl maintainers.ericbmerritt ];
platforms = ocaml.meta.platforms or [];
};
}

View File

@@ -1,40 +1,28 @@
{ stdenv, writeText, fetchFromGitHub, ocaml, ocamlbuild, ocplib-endian, sexplib, findlib, ppx_tools
, async ? null, lwt ? null
}:
{ stdenv, fetchurl, ocaml, jbuilder, findlib, sexplib, ocplib-endian }:
assert stdenv.lib.versionAtLeast ocaml.version "4.01";
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-cstruct-${version}";
version = "3.0.2";
src = fetchurl {
url = "https://github.com/mirage/ocaml-cstruct/releases/download/v${version}/cstruct-${version}.tbz";
sha256 = "03caxcyzfjmbnnwa15zy9s1ckkl4sc834d1qkgi4jcs3zqchvd8z";
};
let param =
if stdenv.lib.versionAtLeast ocaml.version "4.02"
then { version = "2.3.2"; sha256 = "1fykack86hvvqhwngddyxxqlwm3xjljfaszsjbdrvjlrd1nlg079"; }
else { version = "1.9.0"; sha256 = "1c1j21zgmxi9spq23imy7byn50qr7hlds1cfpzxlsx9dp309jngy"; };
in
unpackCmd = "tar -xjf $curSrc";
let opt = b: "--${if b != null then "en" else "dis"}able"; in
buildInputs = [ ocaml jbuilder findlib ];
stdenv.mkDerivation {
name = "ocaml${ocaml.version}-cstruct-${param.version}";
propagatedBuildInputs = [ sexplib ocplib-endian ];
src = fetchFromGitHub {
owner = "mirage";
repo = "ocaml-cstruct";
rev = "v${param.version}";
inherit (param) sha256;
};
buildPhase = "jbuilder build -p cstruct";
configureFlags = [ "${opt lwt}-lwt" "${opt async}-async" "${opt ppx_tools}-ppx" ];
inherit (jbuilder) installPhase;
buildInputs = [ ocaml findlib ocamlbuild ppx_tools lwt async ];
propagatedBuildInputs = [ ocplib-endian sexplib ];
createFindlibDestdir = true;
dontStrip = true;
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 = [ maintainers.vbgl maintainers.ericbmerritt ];
platforms = ocaml.meta.platforms or [];
};
meta = {
description = "Access C-like structures directly from OCaml";
license = stdenv.lib.licenses.isc;
maintainers = [ stdenv.lib.maintainers.vbgl ];
inherit (src.meta) homepage;
inherit (ocaml.meta) platforms;
};
}

View File

@@ -0,0 +1,12 @@
{ stdenv, ocaml, cstruct, lwt }:
assert stdenv.lib.versionAtLeast ocaml.version "4.02";
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-cstruct-lwt-${version}";
inherit (cstruct) version src unpackCmd buildInputs installPhase meta;
propagatedBuildInputs = [ cstruct lwt ];
buildPhase = "${cstruct.buildPhase}-lwt";
}

View File

@@ -0,0 +1,13 @@
{ stdenv, ocaml, cstruct, ppx_tools_versioned }:
assert stdenv.lib.versionAtLeast ocaml.version "4.02";
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-ppx_cstruct-${version}";
inherit (cstruct) version src unpackCmd installPhase meta;
buildInputs = cstruct.buildInputs ++ [ ppx_tools_versioned ];
propagatedBuildInputs = [ cstruct ];
buildPhase = "jbuilder build -p ppx_cstruct";
}

View File

@@ -0,0 +1,12 @@
{ stdenv, ocaml, cstruct }:
assert stdenv.lib.versionAtLeast ocaml.version "4.02";
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-cstruct-unix-${version}";
inherit (cstruct) version src unpackCmd buildInputs installPhase meta;
propagatedBuildInputs = [ cstruct ];
buildPhase = "${cstruct.buildPhase}-unix";
}