2018-02-24 13:12:44 +00:00
|
|
|
{ stdenv, fetchFromGitHub, pkgconfig, cmake, bluez, ffmpeg, libao, libGLU_combined, gtk2, glib
|
2017-07-08 22:22:38 +01:00
|
|
|
, pcre, gettext, libpthreadstubs, libXrandr, libXext, libSM, readline
|
2017-07-21 01:15:04 +01:00
|
|
|
, openal, libXdmcp, portaudio, libusb, libevdev
|
|
|
|
, libpulseaudio ? null
|
|
|
|
, curl
|
2017-11-11 19:46:53 +00:00
|
|
|
|
|
|
|
, qt5
|
2017-07-21 01:15:04 +01:00
|
|
|
# - Inputs used for Darwin
|
|
|
|
, CoreBluetooth, cf-private, ForceFeedback, IOKit, OpenGL
|
|
|
|
, wxGTK
|
|
|
|
, libpng
|
|
|
|
, hidapi
|
2017-11-11 19:46:53 +00:00
|
|
|
|
|
|
|
# options
|
|
|
|
, dolphin-wxgui ? true
|
|
|
|
, dolphin-qtgui ? false
|
2017-07-21 01:15:04 +01:00
|
|
|
}:
|
2017-11-11 19:46:53 +00:00
|
|
|
# XOR: ensure only wx XOR qt are enabled
|
|
|
|
assert dolphin-wxgui || dolphin-qtgui;
|
|
|
|
assert !(dolphin-wxgui && dolphin-qtgui);
|
2014-09-02 09:19:44 +01:00
|
|
|
|
|
|
|
stdenv.mkDerivation rec {
|
2017-11-11 19:46:20 +00:00
|
|
|
name = "dolphin-emu-20171218";
|
2017-07-08 22:22:38 +01:00
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "dolphin-emu";
|
|
|
|
repo = "dolphin";
|
2017-11-11 19:46:20 +00:00
|
|
|
rev = "438e8b64a4b080370c7a65ed23af52838a4e7aaa";
|
|
|
|
sha256 = "0rrd0g1vg9jk1p4wdr6w2z34cabb7pgmpwfcl2a372ark3vi4ysc";
|
2014-09-02 09:19:44 +01:00
|
|
|
};
|
|
|
|
|
2017-07-21 01:24:20 +01:00
|
|
|
cmakeFlags = [
|
|
|
|
"-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
|
|
|
|
"-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include"
|
|
|
|
"-DGTK2_INCLUDE_DIRS=${gtk2.dev}/include/gtk-2.0"
|
|
|
|
"-DENABLE_LTO=True"
|
2017-11-11 19:46:53 +00:00
|
|
|
] ++ stdenv.lib.optionals (!dolphin-qtgui) [ "-DENABLE_QT2=False" ]
|
|
|
|
++ stdenv.lib.optionals stdenv.isDarwin [ "-DOSX_USE_DEFAULT_SEARCH_PATH=True" ];
|
2014-09-02 09:19:44 +01:00
|
|
|
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
|
2017-07-21 01:15:04 +01:00
|
|
|
nativeBuildInputs = [ cmake pkgconfig ];
|
|
|
|
|
2018-02-24 13:12:44 +00:00
|
|
|
buildInputs = [ curl ffmpeg libao libGLU_combined gtk2 glib pcre
|
2017-07-08 22:22:38 +01:00
|
|
|
gettext libpthreadstubs libXrandr libXext libSM readline openal
|
2017-07-21 01:15:04 +01:00
|
|
|
libXdmcp portaudio libusb libpulseaudio libpng hidapi
|
|
|
|
] ++ stdenv.lib.optionals stdenv.isDarwin [ wxGTK CoreBluetooth cf-private ForceFeedback IOKit OpenGL ]
|
2017-11-11 19:46:53 +00:00
|
|
|
++ stdenv.lib.optionals stdenv.isLinux [ bluez libevdev ]
|
|
|
|
++ stdenv.lib.optionals dolphin-qtgui [ qt5.qtbase ];
|
2017-07-21 04:57:57 +01:00
|
|
|
|
|
|
|
# - Change install path to Applications relative to $out
|
|
|
|
# - Allow Dolphin to use nix-provided libraries instead of building them
|
|
|
|
preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
|
|
|
|
sed -i -e 's,/Applications,Applications,g' Source/Core/DolphinWX/CMakeLists.txt
|
|
|
|
sed -i -e 's,if(LIBUSB_FOUND AND NOT APPLE),if(LIBUSB_FOUND),g' CMakeLists.txt
|
|
|
|
sed -i -e 's,if(NOT APPLE),if(true),g' CMakeLists.txt
|
|
|
|
'';
|
|
|
|
|
2017-07-21 04:57:31 +01:00
|
|
|
preInstall = stdenv.lib.optionalString stdenv.isDarwin ''
|
|
|
|
mkdir -p "$out/Applications"
|
|
|
|
'';
|
2014-09-02 09:19:44 +01:00
|
|
|
|
|
|
|
meta = {
|
|
|
|
homepage = http://dolphin-emu.org/;
|
|
|
|
description = "Gamecube/Wii/Triforce emulator for x86_64 and ARM";
|
|
|
|
license = stdenv.lib.licenses.gpl2;
|
|
|
|
maintainers = with stdenv.lib.maintainers; [ MP2E ];
|
2017-11-11 19:46:20 +00:00
|
|
|
branch = "master";
|
2014-12-10 14:43:15 +00:00
|
|
|
# x86_32 is an unsupported platform.
|
|
|
|
# Enable generic build if you really want a JIT-less binary.
|
2017-07-21 01:29:23 +01:00
|
|
|
platforms = [ "x86_64-linux" "x86_64-darwin" ];
|
2014-09-02 09:19:44 +01:00
|
|
|
};
|
|
|
|
}
|