butt: set meta.platforms
[NixPkgs.git] / pkgs / by-name / pr / proto / package.nix
blob94753d08d47e557890c3eee60611bf9a36b28b96
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , rustPlatform
5 , darwin
6 , libiconv
7 , makeBinaryWrapper
8 , pkg-config
9 }:
11 rustPlatform.buildRustPackage rec {
12   pname = "proto";
13   version = "0.34.4";
15   src = fetchFromGitHub {
16     owner = "moonrepo";
17     repo = pname;
18     rev = "v${version}";
19     hash = "sha256-sh4EeK9LGY1t7BDWV31pOjp6CYhOIRR/wCb6LAv68ok=";
20   };
22   cargoHash = "sha256-PU6r6Iwv00TLhAZSt9hERWvCgpC27Cuf3rrsjN1gO5k=";
24   buildInputs = lib.optionals stdenv.isDarwin [
25     darwin.apple_sdk.frameworks.SystemConfiguration
26     libiconv
27   ];
28   nativeBuildInputs = [ makeBinaryWrapper pkg-config ];
30   # Tests requires network access
31   doCheck = false;
32   cargoBuildFlags = [ "--bin proto" "--bin proto-shim" ];
34   postInstall = ''
35     # proto looks up a proto-shim executable file in $PROTO_LOOKUP_DIR
36     wrapProgram $out/bin/${pname} \
37       --set PROTO_LOOKUP_DIR $out/bin
38   '';
40   meta = {
41     description = "A pluggable multi-language version manager";
42     longDescription = ''
43       proto is a pluggable next-generation version manager for multiple programming languages. A unified toolchain.
44     '';
45     homepage = "https://moonrepo.dev/proto";
46     changelog = "https://github.com/moonrepo/proto/releases/tag/v${version}";
47     license = lib.licenses.mit;
48     maintainers = with lib.maintainers; [ nokazn ];
49     mainProgram = "proto";
50     platforms = lib.platforms.linux ++ lib.platforms.darwin;
51   };