diff --git a/pkgs/development/coq-modules/hierarchy-builder/default.nix b/pkgs/development/coq-modules/hierarchy-builder/default.nix new file mode 100644 index 00000000000..ee9c6cb75cf --- /dev/null +++ b/pkgs/development/coq-modules/hierarchy-builder/default.nix @@ -0,0 +1,43 @@ +{ stdenv, fetchFromGitHub, which, coq, coq-elpi }: + +let + versions = { + "0.9.0" = { + rev = "v0.9.0"; + sha256 = "1yss9f732r7bjaswgn46vd1rr3688ir0vz37wxkmy598xhrnd2ak"; + }; + }; + version = x: versions.${x} // {version = x;}; + params = { + "8.10" = version "0.9.0"; + "8.11" = version "0.9.0"; + }; + param = params.${coq.coq-version}; +in + +stdenv.mkDerivation rec { + name = "coq${coq.coq-version}-hierarchy-builder-${param.version}"; + + src = fetchFromGitHub { + owner = "math-comp"; + repo = "hierarchy-builder"; + inherit (param) rev sha256; + }; + + propagatedBuildInputs = [ coq-elpi ]; + buildInputs = [ coq coq.ocaml coq.ocamlPackages.elpi ]; + + installPhase = ''make -f Makefile.coq VFILES=structures.v COQLIB=$out/lib/coq/${coq.coq-version}/ install''; + + meta = { + description = "Coq plugin embedding ELPI."; + maintainers = [ stdenv.lib.maintainers.cohencyril ]; + license = stdenv.lib.licenses.lgpl21; + inherit (coq.meta) platforms; + inherit (src.meta) homepage; + }; + + passthru = { + compatibleCoqVersions = stdenv.lib.flip builtins.hasAttr params; + }; +} diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix index 565410cc5f6..bc39a477a7a 100644 --- a/pkgs/top-level/coq-packages.nix +++ b/pkgs/top-level/coq-packages.nix @@ -31,13 +31,14 @@ let flocq = callPackage ../development/coq-modules/flocq {}; gappalib = callPackage ../development/coq-modules/gappalib {}; heq = callPackage ../development/coq-modules/heq {}; + hierarchy-builder = callPackage ../development/coq-modules/hierarchy-builder {}; HoTT = callPackage ../development/coq-modules/HoTT {}; interval = callPackage ../development/coq-modules/interval {}; InfSeqExt = callPackage ../development/coq-modules/InfSeqExt {}; iris = callPackage ../development/coq-modules/iris {}; ltac2 = callPackage ../development/coq-modules/ltac2 {}; math-classes = callPackage ../development/coq-modules/math-classes { }; - inherit (callPackage ../development/coq-modules/mathcomp { }) + inherit (callPackage ../development/coq-modules/mathcomp {}) mathcompGen mathcompGenSingle ssreflect mathcompCorePkgs mathcomp