nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 122 lines 2.4 kB view raw
1{ 2 coq, 3 mkCoqDerivation, 4 mathcomp, 5 bignums, 6 flocq, 7 coquelicot, 8 interval, 9 mathcomp-reals-stdlib, 10 multinomials, 11 coqeal, 12 lib, 13 version ? null, 14}: 15 16let 17 repo = "validsdp"; 18 owner = "validsdp"; 19 20 inherit version; 21 defaultVersion = 22 let 23 case = coq: mc: out: { 24 cases = [ 25 coq 26 mc 27 ]; 28 inherit out; 29 }; 30 in 31 with lib.versions; 32 lib.switch 33 [ coq.coq-version mathcomp.version ] 34 [ 35 (case (range "9.0" "9.1") (isGe "2.3.0") "1.1.1") 36 (case (range "9.0" "9.1") (range "2.3.0" "2.4.0") "1.1.0") 37 ] 38 null; 39 release = { 40 "1.1.0".sha256 = "sha256-lbESAFBEBpOShNFh6RZQYPLRhdqYvdKBrxJOMy2L+Ws="; 41 "1.1.1".sha256 = "sha256-B+Gy16WjBqqNHvjLE6nBV/ulfDVZUWwA5FO07XnqC60="; 42 }; 43 releaseRev = v: "v${v}"; 44 45 # list of packages sorted by dependency order 46 packages = { 47 "libvalidsdp" = [ ]; 48 "validsdp" = [ "libvalidsdp" ]; 49 }; 50 51 validsdp_ = 52 package: 53 let 54 libvalidsdp-deps = [ 55 mathcomp.field 56 bignums 57 flocq 58 coquelicot 59 interval 60 mathcomp-reals-stdlib 61 ]; 62 validsdp-deps = [ 63 mathcomp.field 64 bignums 65 flocq 66 interval 67 mathcomp-reals-stdlib 68 multinomials 69 coqeal 70 coq.ocamlPackages.osdp 71 coq.ocamlPackages.ocplib-simplex 72 ]; 73 intra-deps = map validsdp_ packages.${package}; 74 pkgpath = lib.switch package [ 75 { 76 case = "libvalidsdp"; 77 out = "libvalidsdp"; 78 } 79 { 80 case = "validsdp"; 81 out = "."; 82 } 83 ] package; 84 pname = package; 85 86 derivation = mkCoqDerivation { 87 inherit 88 version 89 pname 90 defaultVersion 91 release 92 releaseRev 93 repo 94 owner 95 ; 96 97 namePrefix = [ 98 "coq" 99 ]; 100 101 mlPlugin = package == "validsdp"; 102 103 propagatedBuildInputs = 104 intra-deps 105 ++ lib.optionals (package == "libvalidsdp") libvalidsdp-deps 106 ++ lib.optionals (package == "validsdp") validsdp-deps; 107 108 preBuild = '' 109 cd ${pkgpath} 110 ''; 111 112 meta = { 113 description = "ValidSDP"; 114 license = lib.licenses.lgpl21Plus; 115 }; 116 117 passthru = lib.mapAttrs (package: deps: validsdp_ package) packages; 118 }; 119 in 120 derivation; 121in 122validsdp_ "validsdp"