diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/coq-modules/dpdgraph/default.nix')
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/development/coq-modules/dpdgraph/default.nix | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/coq-modules/dpdgraph/default.nix b/infra/libkookie/nixpkgs/pkgs/development/coq-modules/dpdgraph/default.nix new file mode 100644 index 000000000000..195a1c4eada5 --- /dev/null +++ b/infra/libkookie/nixpkgs/pkgs/development/coq-modules/dpdgraph/default.nix @@ -0,0 +1,88 @@ +{ stdenv, fetchFromGitHub, autoreconfHook, coq }: + +let params = { + "8.12" = { + version = "0.6.8"; + sha256 = "1mj6sknsd53xfb387sp3kdwvl4wn80ck24bfzf3s6mgw1a12vyps"; + }; + "8.11" = { + version = "0.6.7"; + sha256 = "01vpi7scvkl4ls1z2k2x9zd65wflzb667idj759859hlz3ps9z09"; + }; + "8.10" = { + version = "0.6.6"; + sha256 = "1gjrm5zjzw4cisiwdr5b3iqa7s4cssa220xr0k96rwgk61rcjd8w"; + }; + "8.9" = { + version = "0.6.5"; + sha256 = "1f34z24yg05b1096gqv36jr3vffkcjkf9qncii3pzhhvagxd0w2f"; + }; + "8.8" = { + version = "0.6.3"; + rev = "0acbd0a594c7e927574d5f212cc73a486b5305d2"; + sha256 = "0c95b0bz2kjm6swr5na4gs06lxxywradszxbr5ldh2zx02r3f3rx"; + }; + "8.7" = { + version = "0.6.2"; + rev = "d76ddde37d918569945774733b7997e8b24daf51"; + sha256 = "04lnf4b25yarysj848cfl8pd3i3pr3818acyp9hgwdgd1rqmhjwm"; + }; + "8.6" = { + version = "0.6.1"; + rev = "c3b87af6bfa338e18b83f014ebd0e56e1f611663"; + sha256 = "1jaafkwsb5450378nprjsds1illgdaq60gryi8kspw0i25ykz2c9"; + }; + "8.5" = { + version = "0.6"; + sha256 = "0qvar8gfbrcs9fmvkph5asqz4l5fi63caykx3bsn8zf0xllkwv0n"; + }; +}; +param = params.${coq.coq-version}; +in + +let hasWarning = stdenv.lib.versionAtLeast coq.ocamlPackages.ocaml.version "4.08"; in + +stdenv.mkDerivation { + name = "coq${coq.coq-version}-dpdgraph-${param.version}"; + src = fetchFromGitHub { + owner = "Karmaki"; + repo = "coq-dpdgraph"; + rev = param.rev or "v${param.version}"; + inherit (param) sha256; + }; + + nativeBuildInputs = [ autoreconfHook ]; + buildInputs = [ coq ] + ++ (with coq.ocamlPackages; [ ocaml findlib ocamlgraph ] + ++ stdenv.lib.optional (!stdenv.lib.versionAtLeast coq.coq-version "8.10") camlp5); + + # dpd_compute.ml uses deprecated Pervasives.compare + # Versions prior to 0.6.5 do not have the WARN_ERR build flag + preConfigure = stdenv.lib.optionalString hasWarning '' + substituteInPlace Makefile.in --replace "-warn-error +a " "" + ''; + + buildFlags = stdenv.lib.optional hasWarning "WARN_ERR="; + + preInstall = '' + mkdir -p $out/bin + ''; + + installFlags = [ + "COQLIB=$(out)/lib/coq/${coq.coq-version}/" + "BINDIR=$(out)/bin" + ]; + + meta = { + description = "Build dependency graphs between Coq objects"; + license = stdenv.lib.licenses.lgpl21; + homepage = "https://github.com/Karmaki/coq-dpdgraph/"; + maintainers = with stdenv.lib.maintainers; [ vbgl ]; + platforms = coq.meta.platforms; + }; + + passthru = { + compatibleCoqVersions = v: builtins.hasAttr v params; + }; + +} |