biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / analysis / rizin / cutter.nix
blob44954c62a3c2c9b67999a929d8fcb61080151780
1 { lib
2 , fetchFromGitHub
3 , stdenv
4 # for passthru.plugins
5 , pkgs
6 # nativeBuildInputs
7 , cmake
8 , pkg-config
9 , wrapQtAppsHook
10 # Qt
11 , qt5compat
12 , qtbase
13 , qtwayland
14 , qtsvg
15 , qttools
16 , qtwebengine
17 # buildInputs
18 , graphviz
19 , python3
20 , rizin
23 let cutter = stdenv.mkDerivation rec {
24   pname = "cutter";
25   version = "2.3.4";
27   src = fetchFromGitHub {
28     owner = "rizinorg";
29     repo = "cutter";
30     rev = "v${version}";
31     hash = "sha256-TSEi1mXVvvaGo4koo3EnN/veXPUHF747g+gifnl4IDQ=";
32     fetchSubmodules = true;
33   };
35   nativeBuildInputs = [
36     cmake
37     pkg-config
38     python3
39     wrapQtAppsHook
40   ];
42   propagatedBuildInputs = [
43     python3.pkgs.pyside6
44   ];
46   buildInputs = [
47     graphviz
48     python3
49     qt5compat
50     qtbase
51     qtsvg
52     qttools
53     qtwebengine
54     rizin
55   ] ++ lib.optionals stdenv.isLinux [
56     qtwayland
57   ];
59   cmakeFlags = [
60     "-DCUTTER_USE_BUNDLED_RIZIN=OFF"
61     "-DCUTTER_ENABLE_PYTHON=ON"
62     "-DCUTTER_ENABLE_PYTHON_BINDINGS=ON"
63     "-DCUTTER_ENABLE_GRAPHVIZ=ON"
64     "-DCUTTER_QT6=ON"
65   ];
67   preBuild = ''
68     qtWrapperArgs+=(--prefix PYTHONPATH : "$PYTHONPATH")
69   '';
71   passthru = rec {
72     plugins = rizin.plugins // {
73       rz-ghidra = rizin.plugins.rz-ghidra.override {
74         inherit cutter qtbase qtsvg;
75         enableCutterPlugin = true;
76       };
77     };
78     withPlugins = filter: pkgs.callPackage ./wrapper.nix {
79       inherit rizin cutter;
80       isCutter = true;
81       plugins = filter plugins;
82     };
83   };
85   meta = with lib; {
86     description = "Free and Open Source Reverse Engineering Platform powered by rizin";
87     homepage = src.meta.homepage;
88     license = licenses.gpl3;
89     mainProgram = "cutter";
90     maintainers = with maintainers; [ mic92 dtzWill ];
91     inherit (rizin.meta) platforms;
92   };
93 }; in cutter