|
| 1 | +{ lib, mkCoqDerivation, which, coq |
| 2 | + , metacoq, bignums, QuickChick, stdpp, RustExtraction, ElmExtraction |
| 3 | + , version ? null }: |
| 4 | + |
| 5 | +with lib; mkCoqDerivation { |
| 6 | + pname = "ConCert"; |
| 7 | + repo = "ConCert"; |
| 8 | + owner = "AU-COBRA"; |
| 9 | + domain = "github.com"; |
| 10 | + |
| 11 | + inherit version; |
| 12 | + ## The `defaultVersion` attribute is important for nixpkgs but can be kept unchanged |
| 13 | + ## for local usage since it will be ignored locally if |
| 14 | + ## - this derivation corresponds to the main attribute, |
| 15 | + ## - or its version is overridden (by a branch, PR, url or path) in `.nix/config.nix`. |
| 16 | + defaultVersion = with versions; switch coq.coq-version [ |
| 17 | + ## Example of possible dependencies |
| 18 | + # { case = range "8.13" "8.14"; out = "1.2.0"; } |
| 19 | + ## other predicates are `isLe v`, `isLt v`, `isGe v`, `isGt v`, `isEq v` etc |
| 20 | + ] null; |
| 21 | + |
| 22 | + ## Declare existing releases |
| 23 | + ## leave sha256 empty at first and then copy paste |
| 24 | + ## the resulting sha given by the error message |
| 25 | + # release."1.1.1".sha256 = ""; |
| 26 | + ## if the tag is not exactly the version number you can amend like this |
| 27 | + # release."1.1.1".rev = "v1.1.1"; |
| 28 | + ## if a consistent scheme gives the tag from the release number, you can do like this: |
| 29 | + # releaseRev = v: "v${v}"; |
| 30 | + |
| 31 | + propagatedBuildInputs = [ coq.ocamlPackages.findlib metacoq bignums QuickChick stdpp RustExtraction ElmExtraction ]; |
| 32 | + |
| 33 | + postPatch = ''patchShebangs ./extraction/process-extraction-examples.sh''; |
| 34 | + |
| 35 | + meta = { |
| 36 | + description = "A framework for smart contract verification in Coq"; |
| 37 | + maintainers = with maintainers; [ _4ever2 ]; |
| 38 | + license = licenses.mit; |
| 39 | + }; |
| 40 | +} |
0 commit comments