python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / tools / analysis / hotspot / default.nix
blob5fede1aee5c521f3736e7ccd3931bd524014c3c4
1 { lib
2 , mkDerivation
3 , cmake
4 , elfutils
5 , extra-cmake-modules
6 , fetchFromGitHub
7 , kconfigwidgets
8 , ki18n
9 , kio
10 , kitemmodels
11 , kitemviews
12 , kwindowsystem
13 , libelf
14 , qtbase
15 , threadweaver
16 , qtx11extras
17 , zstd
18 , kddockwidgets
19 , rustc-demangle
22 mkDerivation rec {
23   pname = "hotspot";
24   version = "1.3.0";
26   src = fetchFromGitHub {
27     owner = "KDAB";
28     repo = "hotspot";
29     rev = "v${version}";
30     sha256 = "1f68bssh3p387hkavfjkqcf7qf7w5caznmjfjldicxphap4riqr5";
31     fetchSubmodules = true;
32   };
34   nativeBuildInputs = [
35     cmake
36     extra-cmake-modules
37   ];
38   buildInputs = [
39     elfutils
40     kconfigwidgets
41     ki18n
42     kio
43     kitemmodels
44     kitemviews
45     kwindowsystem
46     libelf
47     qtbase
48     threadweaver
49     qtx11extras
50     zstd
51     kddockwidgets
52     rustc-demangle
53   ];
55   # hotspot checks for the presence of third party libraries'
56   # git directory to give a nice warning when you forgot to clone
57   # submodules; but Nix clones them and removes .git (for reproducibility).
58   # So we need to fake their existence here.
59   postPatch = ''
60     mkdir -p 3rdparty/{perfparser,PrefixTickLabels}/.git
61   '';
63   cmakeFlags = [
64     "-DRUSTC_DEMANGLE_INCLUDE_DIR=${rustc-demangle}/include"
65     "-DRUSTC_DEMANGLE_LIBRARY=${rustc-demangle}/lib/librustc_demangle.so"
66   ];
68   meta = {
69     description = "A GUI for Linux perf";
70     longDescription = ''
71       hotspot is a GUI replacement for `perf report`.
72       It takes a perf.data file, parses and evaluates its contents and
73       then displays the result in a graphical way.
74     '';
75     homepage = "https://github.com/KDAB/hotspot";
76     license = with lib.licenses; [ gpl2Only gpl3Only ];
77     platforms = lib.platforms.linux;
78     maintainers = with lib.maintainers; [ nh2 ];
79   };