From bb038283c449c6ab37e32d9164a26602d23d2eee Mon Sep 17 00:00:00 2001 From: John Wiegley <johnw@newartisans.com> Date: Sun, 12 Nov 2017 09:34:06 -0800 Subject: [PATCH] coqPackages.metalib: New expression --- .../coq-modules/metalib/default.nix | 53 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 54 insertions(+) create mode 100644 pkgs/development/coq-modules/metalib/default.nix diff --git a/pkgs/development/coq-modules/metalib/default.nix b/pkgs/development/coq-modules/metalib/default.nix new file mode 100644 index 000000000000..0304cb48b3b9 --- /dev/null +++ b/pkgs/development/coq-modules/metalib/default.nix @@ -0,0 +1,53 @@ +{ stdenv, fetchgit, coq, ocamlPackages, haskellPackages, which, ott +}: + +stdenv.mkDerivation rec { + name = "metalib-${coq.coq-version}-${version}"; + version = "20170713"; + + src = fetchgit { + url = https://github.com/plclub/metalib.git; + rev = "44e40aa082452dd333fc1ca2d2cc55311519bd52"; + sha256 = "1pra0nvx69q8d4bvpcvh9ngic1cy6z1chi03x56nisfqnc61b6y9"; + }; + + # The 'lngen' command-line utility is built from Haskell sources + lngen = with haskellPackages; mkDerivation { + pname = "lngen"; + version = "0.0.1"; + src = fetchgit { + url = https://github.com/plclub/lngen; + rev = "ea73ad315de33afd25f87ca738c71f358f1cd51c"; + sha256 = "1a0sj8n3lmsl1wlnqfy176k9lb9s8rl422bvg3ihl2i70ql8wisd"; + }; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ base containers mtl parsec syb ]; + executableHaskellDepends = [ base ]; + homepage = https://github.com/plclub/lngen; + description = "Tool for generating Locally Nameless definitions and proofs in Coq, working together with Ott"; + license = stdenv.lib.licenses.mit; + }; + + buildInputs = [ coq.ocaml coq.camlp5 which coq lngen ott ] + ++ (with ocamlPackages; [ findlib ]); + propagatedBuildInputs = [ coq ]; + + enableParallelBuilding = true; + + buildPhase = '' + (cd Metalib; make) + ''; + + installPhase = '' + (cd Metalib; make -f CoqSrc.mk DSTROOT=/ COQLIB=$out/lib/coq/${coq.coq-version}/ install) + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/plclub/metalib; + license = licenses.mit; + maintainers = [ maintainers.jwiegley ]; + platforms = coq.meta.platforms; + }; + +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f9f9d16514cd..3905452fae8a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18714,6 +18714,7 @@ with pkgs; HoTT = callPackage ../development/coq-modules/HoTT {}; interval = callPackage ../development/coq-modules/interval {}; mathcomp = callPackage ../development/coq-modules/mathcomp { }; + metalib = callPackage ../development/coq-modules/metalib { }; paco = callPackage ../development/coq-modules/paco {}; ssreflect = callPackage ../development/coq-modules/ssreflect { }; QuickChick = callPackage ../development/coq-modules/QuickChick {};