Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / tools / lalrpop / default.nix
blob32e6ec7a35b2f0f711e2c76669c6da652aa3bdf0
1 { lib
2 , rustPlatform
3 , fetchFromGitHub
4 , substituteAll
5 , stdenv
6 }:
8 rustPlatform.buildRustPackage rec {
9   pname = "lalrpop";
10   version = "0.20.0";
12   src = fetchFromGitHub {
13     owner = "lalrpop";
14     repo = "lalrpop";
15     # there's no tag for 0.20.0
16     rev = "1584ddb243726195b540fdd2b3ccf693876288e0";
17     # rev = version;
18     hash = "sha256-aYlSR8XqJnj76Hm3MFqfA5d9L3SO/iCCKpzOES5YQGY=";
19   };
21   cargoHash = "sha256-JaU5ZJbmlV/HfFT/ODpB3xFjZc2XiljhEVz/dql8o/c=";
23   patches = [
24     (substituteAll {
25       src = ./use-correct-binary-path-in-tests.patch;
26       target_triple = stdenv.hostPlatform.rust.rustcTarget;
27     })
28   ];
30   buildAndTestSubdir = "lalrpop";
32   # there are some tests in lalrpop-test and some in lalrpop
33   checkPhase = ''
34     buildAndTestSubdir=lalrpop-test cargoCheckHook
35     cargoCheckHook
36   '';
38   meta = with lib; {
39     description = "LR(1) parser generator for Rust";
40     homepage = "https://github.com/lalrpop/lalrpop";
41     changelog = "https://github.com/lalrpop/lalrpop/blob/${src.rev}/RELEASES.md";
42     license = with licenses; [ asl20 /* or */ mit ];
43     mainProgram = "lalrpop";
44     maintainers = with maintainers; [ chayleaf ];
45   };