To keep this for the future we also strictDeps where possible, including for janePackages, topkg, oasis and ocamlbuild. This makes some closures significantly smaller and makes cross compilation easier
42 lines
1.1 KiB
Nix
42 lines
1.1 KiB
Nix
{ lib, stdenv, fetchFromGitHub, ocaml, findlib, libffi, pkg-config, ncurses, integers, bigarray-compat }:
|
|
|
|
if !lib.versionAtLeast ocaml.version "4.02"
|
|
then throw "ctypes is not available for OCaml ${ocaml.version}"
|
|
else
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "ocaml${ocaml.version}-ctypes";
|
|
version = "0.18.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "ocamllabs";
|
|
repo = "ocaml-ctypes";
|
|
rev = version;
|
|
sha256 = "sha256-eu5RAuPYC97IM4XUsUw3HQ1BJlEHQ+eBpsdUE6hd+Q8=";
|
|
};
|
|
|
|
nativeBuildInputs = [ pkg-config ocaml findlib ];
|
|
buildInputs = [ ncurses ];
|
|
propagatedBuildInputs = [ integers libffi bigarray-compat ];
|
|
|
|
strictDeps = true;
|
|
|
|
buildPhase = ''
|
|
make XEN=false libffi.config ctypes-base ctypes-stubs
|
|
make XEN=false ctypes-foreign
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs
|
|
make install XEN=false
|
|
'';
|
|
|
|
meta = with lib; {
|
|
homepage = "https://github.com/ocamllabs/ocaml-ctypes";
|
|
description = "Library for binding to C libraries using pure OCaml";
|
|
license = licenses.mit;
|
|
maintainers = [ maintainers.ericbmerritt ];
|
|
inherit (ocaml.meta) platforms;
|
|
};
|
|
}
|