diff options
Diffstat (limited to 'nixpkgs/pkgs/development/tools/misc/igprof/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/tools/misc/igprof/default.nix | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/tools/misc/igprof/default.nix b/nixpkgs/pkgs/development/tools/misc/igprof/default.nix new file mode 100644 index 000000000000..294d1fa10dde --- /dev/null +++ b/nixpkgs/pkgs/development/tools/misc/igprof/default.nix @@ -0,0 +1,43 @@ +{stdenv, fetchFromGitHub, libunwind, cmake, pcre, gdb}: + +stdenv.mkDerivation rec { + version = "5.9.16"; + name = "igprof-${version}"; + + src = fetchFromGitHub { + owner = "igprof"; + repo = "igprof"; + rev = "v${version}"; + sha256 = "0rx3mv8zdh9bmcpfbzkib3d52skzfr8600gh5gv21wcsh50jnifx"; + }; + + postPatch = '' + substituteInPlace src/igprof --replace libigprof.so $out/lib/libigprof.so + ''; + + buildInputs = [libunwind gdb pcre]; + nativeBuildInputs = [cmake]; + CXXFLAGS = ["-fPIC" "-O2" "-w" "-fpermissive"]; + + meta = { + description = "The Ignominous Profiler"; + + longDescription = '' + IgProf is a fast and light weight profiler. It correctly handles + dynamically loaded shared libraries, threads and sub-processes started by + the application. We have used it routinely with large C++ applications + consisting of many hundreds of shared libraries and thousands of symbols + from millions of source lines of code. It requires no special privileges + to run. The performance reports provide full navigable call stacks and + can be customised by applying filters. Results from any number of + profiling runs can be included. This means you can both dig into the + details and see the big picture from combined workloads. + ''; + + license = stdenv.lib.licenses.gpl2; + + homepage = https://igprof.org/; + platforms = stdenv.lib.platforms.linux; + maintainers = with stdenv.lib.maintainers; [ ktf ]; + }; +} |