Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at python-updates 67 lines 1.3 kB view raw
1{ 2 lib, 3 stdenv, 4 ocaml_oasis, 5 ocaml, 6 findlib, 7 ocamlbuild, 8}: 9 10{ 11 pname, 12 version, 13 nativeBuildInputs ? [ ], 14 meta ? { 15 platforms = ocaml.meta.platforms or [ ]; 16 }, 17 minimumOCamlVersion ? null, 18 createFindlibDestdir ? true, 19 dontStrip ? true, 20 ... 21}@args: 22 23if args ? minimumOCamlVersion && lib.versionOlder ocaml.version args.minimumOCamlVersion then 24 throw "${pname}-${version} is not available for OCaml ${ocaml.version}" 25else 26 27 stdenv.mkDerivation ( 28 args 29 // { 30 name = "ocaml${ocaml.version}-${pname}-${version}"; 31 32 nativeBuildInputs = [ 33 ocaml 34 findlib 35 ocamlbuild 36 ocaml_oasis 37 ] 38 ++ nativeBuildInputs; 39 40 inherit createFindlibDestdir; 41 inherit dontStrip; 42 43 strictDeps = true; 44 45 buildPhase = '' 46 runHook preBuild 47 oasis setup 48 ocaml setup.ml -configure --prefix $OCAMLFIND_DESTDIR --exec-prefix $out 49 ocaml setup.ml -build 50 runHook postBuild 51 ''; 52 53 checkPhase = '' 54 runHook preCheck 55 ocaml setup.ml -test 56 runHook postCheck 57 ''; 58 59 installPhase = '' 60 runHook preInstall 61 mkdir -p $out 62 ocaml setup.ml -install 63 runHook postInstall 64 ''; 65 66 } 67 )