1{ stdenvNoCC, fetchurl, dpkg, lib, qt5, autoPatchelfHook, SDL2 }:
2
3stdenvNoCC.mkDerivation (finalAttrs: {
4 pname = "gamepad-tool";
5 version = "1.2";
6
7 src = fetchurl {
8 url = "https://generalarcade.com/gamepadtool/linux/gamepadtool_${finalAttrs.version}_amd64.deb";
9 hash = "sha256-ZuB0TOyT2B5QkU1o5h3/8PL85tBq06hlz5YclRanD88=";
10 };
11
12 nativeBuildInputs = [ dpkg qt5.wrapQtAppsHook autoPatchelfHook ];
13
14 unpackCmd = ''
15 mkdir -p root
16 dpkg-deb -x $curSrc root
17 '';
18
19 dontBuild = true;
20
21 buildInputs = [
22 SDL2
23 qt5.qtbase
24 ];
25
26 installPhase = ''
27 runHook preInstall
28
29 mkdir -p $out/bin $out/share/applications
30 cp usr/bin/gamepad-tool $out/bin
31 cp -r usr/share/icons $out/share/icons
32 substitute usr/share/applications/gamepad-tool-debian.desktop \
33 $out/share/applications/gamepad-tool.desktop \
34 --replace "Exec=gamepad-tool" "Exec=$out/bin/gamepad-tool" \
35 --replace "/usr/share/icons/hicolor/256x256/apps/gamepad-tool.png" "$out/share/icons/hicolor/256x256/apps/gamepad-tool.png"
36 runHook postInstall
37 '';
38
39 meta = with lib; {
40 description = "A simple GUI tool to create/modify gamepad mappings for games that use SDL2 Game Controller API";
41 homepage = "https://generalarcade.com/gamepadtool/";
42 license = licenses.unfree;
43 platforms = [ "x86_64-linux" ];
44 maintainers = with maintainers; [ gador ];
45 };
46})