lol
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 90 lines 2.1 kB view raw
1{ 2 lib, 3 stdenv, 4 ocaml, 5 findlib, 6 dune_1, 7 dune_2, 8 dune_3, 9}: 10 11lib.extendMkDerivation { 12 constructDrv = stdenv.mkDerivation; 13 excludeDrvArgNames = [ 14 "minimalOCamlVersion" 15 "duneVersion" 16 ]; 17 extendDrvArgs = 18 finalAttrs: 19 { 20 pname, 21 version, 22 nativeBuildInputs ? [ ], 23 enableParallelBuilding ? true, 24 ... 25 }@args: 26 27 let 28 Dune = 29 let 30 dune-version = args.duneVersion or "3"; 31 in 32 { 33 "1" = dune_1; 34 "2" = dune_2; 35 "3" = dune_3; 36 } 37 ."${dune-version}"; 38 in 39 40 if args ? minimalOCamlVersion && lib.versionOlder ocaml.version args.minimalOCamlVersion then 41 throw "${pname}-${version} is not available for OCaml ${ocaml.version}" 42 else 43 { 44 name = "ocaml${ocaml.version}-${pname}-${version}"; 45 46 strictDeps = true; 47 48 inherit enableParallelBuilding; 49 dontAddStaticConfigureFlags = true; 50 configurePlatforms = [ ]; 51 52 nativeBuildInputs = [ 53 ocaml 54 Dune 55 findlib 56 ] 57 ++ nativeBuildInputs; 58 59 buildPhase = 60 args.buildPhase or '' 61 runHook preBuild 62 dune build -p ${pname} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} 63 runHook postBuild 64 ''; 65 66 installPhase = 67 args.installPhase or '' 68 runHook preInstall 69 dune install --prefix $out --libdir $OCAMLFIND_DESTDIR ${pname} \ 70 ${ 71 if lib.versionAtLeast Dune.version "2.9" then 72 "--docdir $out/share/doc --mandir $out/share/man" 73 else 74 "" 75 } 76 runHook postInstall 77 ''; 78 79 checkPhase = 80 args.checkPhase or '' 81 runHook preCheck 82 dune runtest -p ${pname} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} 83 runHook postCheck 84 ''; 85 86 meta = (args.meta or { }) // { 87 platforms = args.meta.platforms or ocaml.meta.platforms; 88 }; 89 }; 90}