at master 1.7 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 cmake, 6 pkg-config, 7 boost, 8 capstone_4, 9 double-conversion, 10 graphviz, 11 qtxmlpatterns, 12 qttools, 13 qtbase, 14 wrapQtAppsHook, 15 testers, 16 nix-update-script, 17}: 18 19stdenv.mkDerivation (finalAttrs: { 20 pname = "edb"; 21 version = "1.5.0"; 22 23 src = fetchFromGitHub { 24 owner = "eteran"; 25 repo = "edb-debugger"; 26 tag = finalAttrs.version; 27 fetchSubmodules = true; 28 hash = "sha256-ALhA/odVwUQHKuOZ1W/i/6L7da/yitdpBsx2kz2ySQE="; 29 }; 30 31 nativeBuildInputs = [ 32 cmake 33 pkg-config 34 wrapQtAppsHook 35 qttools 36 ]; 37 38 buildInputs = [ 39 qtbase 40 boost.dev 41 capstone_4 42 double-conversion 43 graphviz 44 qtxmlpatterns 45 ]; 46 47 cmakeFlags = [ 48 (lib.cmakeFeature "DEFAULT_PLUGIN_DIR" "${placeholder "out"}/lib/edb") 49 ]; 50 51 postPatch = '' 52 # The build script checks for the presence of .git to determine whether 53 # submodules were fetched and will throw an error if it's not there. 54 # Avoid using leaveDotGit in the fetchFromGitHub options as it is non-deterministic. 55 mkdir -p src/qhexview/.git lib/gdtoa-desktop/.git 56 ''; 57 58 passthru = { 59 tests.version = testers.testVersion { 60 package = finalAttrs.finalPackage; 61 command = "env QT_QPA_PLATFORM=minimal ${lib.getExe finalAttrs.finalPackage} --version"; 62 }; 63 updateScript = nix-update-script { }; 64 }; 65 66 meta = { 67 description = "Cross platform AArch32/x86/x86-64 debugger"; 68 mainProgram = "edb"; 69 homepage = "https://github.com/eteran/edb-debugger"; 70 license = lib.licenses.gpl2Plus; 71 maintainers = with lib.maintainers; [ 72 lihop 73 maxxk 74 ]; 75 platforms = [ "x86_64-linux" ]; 76 }; 77})