biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / emulators / dolphin-emu / primehack.nix
blob7c409692d939d940a67bbf93ee179c06d4c5302b
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , pkg-config
5 , cmake
6 , wrapQtAppsHook
7 , qtbase
8 , bluez
9 , ffmpeg
10 , libao
11 , libGLU
12 , libGL
13 , pcre
14 , gettext
15 , libXrandr
16 , libusb1
17 , libpthreadstubs
18 , libXext
19 , libXxf86vm
20 , libXinerama
21 , libSM
22 , libXdmcp
23 , readline
24 , openal
25 , udev
26 , libevdev
27 , portaudio
28 , curl
29 , alsa-lib
30 , miniupnpc
31 , enet
32 , mbedtls_2
33 , soundtouch
34 , sfml
35 , fmt
36 , xz
37 , vulkan-loader
38 , libpulseaudio
40 # - Inputs used for Darwin
41 , CoreBluetooth
42 , ForceFeedback
43 , IOKit
44 , OpenGL
45 , libpng
46 , hidapi
49 stdenv.mkDerivation rec {
50   pname = "dolphin-emu-primehack";
51   version = "1.0.6a";
53   src = fetchFromGitHub {
54     owner = "shiiion";
55     repo = "dolphin";
56     rev = version;
57     sha256 = "sha256-gc4+ofoLKR+cvm+SaWEnGaKrSjWMKq7pF6pEIi75Rtk=";
58     fetchSubmodules = true;
59   };
61   nativeBuildInputs = [
62     pkg-config
63     cmake
64   ] ++ lib.optional stdenv.isLinux wrapQtAppsHook;
66   buildInputs = [
67     curl
68     ffmpeg
69     libao
70     libGLU
71     libGL
72     pcre
73     gettext
74     libpthreadstubs
75     libpulseaudio
76     libXrandr
77     libXext
78     libXxf86vm
79     libXinerama
80     libSM
81     readline
82     openal
83     libXdmcp
84     portaudio
85     libusb1
86     libpng
87     hidapi
88     miniupnpc
89     enet
90     mbedtls_2
91     soundtouch
92     sfml
93     fmt
94     xz
95     qtbase
96   ] ++ lib.optionals stdenv.isLinux [
97     bluez
98     udev
99     libevdev
100     alsa-lib
101     vulkan-loader
102   ] ++ lib.optionals stdenv.isDarwin [
103     CoreBluetooth
104     OpenGL
105     ForceFeedback
106     IOKit
107   ];
109   cmakeFlags = [
110     "-DUSE_SHARED_ENET=ON"
111     "-DENABLE_LTO=ON"
112   ] ++ lib.optionals stdenv.isDarwin [
113     "-DOSX_USE_DEFAULT_SEARCH_PATH=True"
114   ];
116   qtWrapperArgs = lib.optionals stdenv.isLinux [
117     "--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib"
118     # https://bugs.dolphin-emu.org/issues/11807
119     # The .desktop file should already set this, but Dolphin may be launched in other ways
120     "--set QT_QPA_PLATFORM xcb"
121   ];
123   # - Allow Dolphin to use nix-provided libraries instead of building them
124   postPatch = ''
125     substituteInPlace CMakeLists.txt --replace 'DISTRIBUTOR "None"' 'DISTRIBUTOR "NixOS"'
126   '' + lib.optionalString stdenv.isDarwin ''
127     substituteInPlace CMakeLists.txt --replace 'if(NOT APPLE)' 'if(true)'
128     substituteInPlace CMakeLists.txt --replace 'if(LIBUSB_FOUND AND NOT APPLE)' 'if(LIBUSB_FOUND)'
129   '';
131   postInstall = ''
132     mv $out/bin/dolphin-emu $out/bin/dolphin-emu-primehack
133     mv $out/bin/dolphin-emu-nogui $out/bin/dolphin-emu-primehack-nogui
134     mv $out/share/applications/dolphin-emu.desktop $out/share/applications/dolphin-emu-primehack.desktop
135     mv $out/share/icons/hicolor/256x256/apps/dolphin-emu.png $out/share/icons/hicolor/256x256/apps/dolphin-emu-primehack.png
136     substituteInPlace $out/share/applications/dolphin-emu-primehack.desktop --replace 'dolphin-emu' 'dolphin-emu-primehack'
137     substituteInPlace $out/share/applications/dolphin-emu-primehack.desktop --replace 'Dolphin Emulator' 'PrimeHack'
138   '' + lib.optionalString stdenv.hostPlatform.isLinux ''
139     install -D $src/Data/51-usb-device.rules $out/etc/udev/rules.d/51-usb-device.rules
140   '';
142   meta = with lib; {
143     homepage = "https://github.com/shiiion/dolphin";
144     description = "Gamecube/Wii/Triforce emulator for x86_64 and ARMv8";
145     license = licenses.gpl2Plus;
146     maintainers = with maintainers; [ MP2E ashkitten Madouura ];
147     broken = stdenv.isDarwin;
148     platforms = platforms.unix;
149   };