Files

94 lines
2.9 KiB
Nix

{
lib,
mkCoqDerivation,
coq,
mathcomp-boot,
ExtLib,
simple-io,
version ? null,
}:
(mkCoqDerivation {
pname = "QuickChick";
owner = "QuickChick";
inherit version;
defaultVersion =
let
case = coq: mc: out: {
cases = [
coq
mc
];
inherit out;
};
in
lib.switch
[ coq.coq-version mathcomp-boot.version ]
[
(case (lib.versions.range "8.15" "9.1") lib.pred.true "2.1.1")
(case (lib.versions.range "8.13" "8.17") lib.pred.true "1.6.5")
(case "8.13" lib.pred.true "1.5.0")
(case "8.12" lib.pred.true "1.4.0")
(case "8.11" lib.pred.true "1.3.2")
(case "8.10" lib.pred.true "1.2.1")
(case "8.9" lib.pred.true "1.1.0")
]
null;
release."2.1.1".hash = "sha256-tcZFpf8joEdVCgy1oKWdaM/9q3EMsF/jT+zz+kIsix8=";
release."2.0.4".hash = "sha256-WD8B+n8gyGctHMO+M8201Ca3Uw8zCWYsOatSNGCf0/s=";
release."2.0.2".hash = "sha256-xxKkwDRjB8nUiXNhein1Ppn0DP5FZ13J90xUPAnQBbs=";
release."2.0.1".hash = "sha256-gJc+9Or6tbqE00920Il4pnEvokRoiADX6CxP/Q0QZaY=";
release."1.6.5".hash = "sha256-rcFyRDH8UbB9KVk10P5qjtPkWs04p78VNHkCq4mXr3U=";
release."1.6.4".hash = "sha256-C1060wPSU33yZAFLxGmZlAMXASnx98qz3oSLO8DO+mM=";
release."1.6.2".hash = "sha256:0g5q9zw3xd4zndihq96nxkq4w3dh05418wzlwdk1nnn3b6vbx6z0";
release."1.5.0".hash = "sha256:1lq8x86vd3vqqh2yq6hvyagpnhfq5wmk5pg2z0xq7b7dcw7hyfkw";
release."1.4.0".hash = "sha256:068p48pm5yxjc3yv8qwzp25bp9kddvxj81l31mjkyx3sdrsw3kyc";
release."1.3.2".hash = "sha256:0lciwaqv288dh2f13xk2x0lrn6zyrkqy6g4yy927wwzag2gklfrs";
release."1.2.1".hash = "sha256:17vz88xjzxh3q7hs6hnndw61r3hdfawxp5awqpgfaxx4w6ni8z46";
release."1.1.0".hash = "sha256:1c34v1k37rk7v0xk2czv5n79mbjxjrm6nh3llg2mpfmdsqi68wf3";
releaseRev = v: "v${v}";
preConfigure = "substituteInPlace Makefile --replace quickChickTool.byte quickChickTool.native";
useDuneifVersion = v: lib.versions.isGe "2.1" v || v == "dev";
opam-name = "coq-quickchick";
mlPlugin = true;
nativeBuildInputs = [ coq.ocamlPackages.ocamlbuild ];
propagatedBuildInputs = [
mathcomp-boot
ExtLib
simple-io
];
extraInstallFlags = [ "-f Makefile.coq" ];
enableParallelBuilding = false;
meta = {
description = "Randomized property-based testing plugin for Coq; a clone of Haskell QuickCheck";
maintainers = with lib.maintainers; [ jwiegley ];
};
}).overrideAttrs
(
o:
let
after_1_6 = lib.versions.isGe "1.6" o.version || o.version == "dev";
after_2_1 = lib.versions.isGe "2.1" o.version || o.version == "dev";
in
{
nativeBuildInputs =
o.nativeBuildInputs
++ lib.optional after_1_6 coq.ocamlPackages.cppo
++ lib.optional after_2_1 coq.ocamlPackages.menhir;
propagatedBuildInputs =
o.propagatedBuildInputs
++ lib.optionals after_1_6 (
with coq.ocamlPackages;
[
findlib
zarith
]
);
}
)