anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / build-support / ocaml / oasis.nix
blob91daad59050d4aa8a73de3ce413efe60891880c8
1 { lib, stdenv, ocaml_oasis, ocaml, findlib, ocamlbuild }:
3 { pname, version, nativeBuildInputs ? [], meta ? { platforms = ocaml.meta.platforms or []; },
4   minimumOCamlVersion ? null,
5   createFindlibDestdir ? true,
6   dontStrip ? true,
7   ...
8 }@args:
10 if args ? minimumOCamlVersion &&
11    lib.versionOlder ocaml.version args.minimumOCamlVersion
12 then throw "${pname}-${version} is not available for OCaml ${ocaml.version}"
13 else
15 stdenv.mkDerivation (args // {
16   name = "ocaml${ocaml.version}-${pname}-${version}";
18   nativeBuildInputs = [ ocaml findlib ocamlbuild ocaml_oasis ] ++ nativeBuildInputs;
20   inherit createFindlibDestdir;
21   inherit dontStrip;
23   strictDeps = true;
25   buildPhase = ''
26     runHook preBuild
27     oasis setup
28     ocaml setup.ml -configure --prefix $OCAMLFIND_DESTDIR --exec-prefix $out
29     ocaml setup.ml -build
30     runHook postBuild
31   '';
33   checkPhase = ''
34     runHook preCheck
35     ocaml setup.ml -test
36     runHook postCheck
37   '';
39   installPhase = ''
40     runHook preInstall
41     mkdir -p $out
42     ocaml setup.ml -install
43     runHook postInstall
44   '';