diff --git a/pkgs/development/coq-modules/coqfmt/default.nix b/pkgs/development/coq-modules/coqfmt/default.nix new file mode 100644 index 000000000000..d159a12f0fe6 --- /dev/null +++ b/pkgs/development/coq-modules/coqfmt/default.nix @@ -0,0 +1,55 @@ +{ + coq, + coq-lsp, + ocamlPackages, + lib, + mkCoqDerivation, + version ? null, + makeWrapper, +}: + +mkCoqDerivation rec { + pname = "coqfmt"; + owner = "toku-sa-n"; + + inherit version; + displayVersion.coqfmt = v: "master-${v}"; + + release."master" = { + rev = "c26ce64d6ad1a1c3cafee38ab4889ad3b68a5c33"; + sha256 = "sha256-4Q0z/KUHrJZKeKJDqa9mkxfy9LrGh2xPt561muUFYAY="; + }; + namePrefix = [ ]; + + useDune = true; + + defaultVersion = + with lib.versions; + lib.switch coq.version [ + { + case = isEq "8.20"; + out = "master"; + } + ] null; + + installPhase = '' + runHook preInstall + dune install -p ${pname} --prefix=$out --libdir $OCAMLFIND_DESTDIR + wrapProgram $out/bin/coqfmt --prefix OCAMLPATH : $OCAMLPATH + runHook postInstall + ''; + + nativeBuildInputs = [ makeWrapper ]; + + buildInputs = with ocamlPackages; [ + dune-build-info + coq-lsp + ]; + + meta = { + description = "A command line tool to format your Coq source code."; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ DieracDelta ]; + }; + +} diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix index f6392c70d39a..81c9423e6b21 100644 --- a/pkgs/top-level/coq-packages.nix +++ b/pkgs/top-level/coq-packages.nix @@ -94,6 +94,7 @@ let coqtail-math = callPackage ../development/coq-modules/coqtail-math { }; coquelicot = callPackage ../development/coq-modules/coquelicot { }; coqutil = callPackage ../development/coq-modules/coqutil { }; + coqfmt = callPackage ../development/coq-modules/coqfmt { }; corn = callPackage ../development/coq-modules/corn { }; deriving = callPackage ../development/coq-modules/deriving { }; dpdgraph = callPackage ../development/coq-modules/dpdgraph { };