diff options
Diffstat (limited to 'pkgs/development/tools/rust/cargo-flamegraph/default.nix')
-rw-r--r-- | pkgs/development/tools/rust/cargo-flamegraph/default.nix | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/pkgs/development/tools/rust/cargo-flamegraph/default.nix b/pkgs/development/tools/rust/cargo-flamegraph/default.nix new file mode 100644 index 0000000000000..e3bbb29164f13 --- /dev/null +++ b/pkgs/development/tools/rust/cargo-flamegraph/default.nix @@ -0,0 +1,40 @@ +{ lib, stdenv, fetchFromGitHub, rustPlatform, makeWrapper, perf, nix-update-script +, Security +}: + +rustPlatform.buildRustPackage rec { + pname = "cargo-flamegraph"; + version = "0.5.1"; + + src = fetchFromGitHub { + owner = "flamegraph-rs"; + repo = "flamegraph"; + rev = "v${version}"; + sha256 = "sha256-Q930PIGncUX2Wz3hA1OQu0TEPMfOu2jMpBPbaAVlUMU="; + }; + + cargoSha256 = "sha256-ENL1FeIn9HESyp1VhePr4q7BLCc0SS8NAuHKv1crJE8="; + + nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ]; + buildInputs = lib.optionals stdenv.isDarwin [ + Security + ]; + + postFixup = lib.optionalString stdenv.isLinux '' + wrapProgram $out/bin/cargo-flamegraph \ + --set-default PERF ${perf}/bin/perf + wrapProgram $out/bin/flamegraph \ + --set-default PERF ${perf}/bin/perf + ''; + + passthru.updateScript = nix-update-script { + attrPath = pname; + }; + + meta = with lib; { + description = "Easy flamegraphs for Rust projects and everything else, without Perl or pipes <3"; + homepage = "https://github.com/ferrous-systems/flamegraph"; + license = with licenses; [ asl20 /* or */ mit ]; + maintainers = with maintainers; [ killercup ]; + }; +} |