dolphinEmuMaster: 2018-06-22 -> 2018-07-02

also migrate from wxwidgets to qt, wxwidgets support in dolphin has been
dropped
This commit is contained in:
Okina Matara 2018-06-27 18:33:13 -05:00 committed by Cray Elliott
parent 3e6c0337c9
commit 8b312db421
2 changed files with 29 additions and 49 deletions

View File

@ -1,26 +1,16 @@
{ stdenv, fetchFromGitHub, makeWrapper, makeDesktopItem, pkgconfig, cmake, qt5 { stdenv, fetchFromGitHub, makeWrapper, makeDesktopItem, pkgconfig, cmake, qt5
, bluez, ffmpeg, libao, libGLU_combined, gtk2, glib, pcre, gettext, libXrandr , bluez, ffmpeg, libao, libGLU_combined, pcre, gettext, libXrandr, libusb, lzo
, libpthreadstubs, libusb, libXext, libXxf86vm, libXinerama, libSM, libXdmcp , libpthreadstubs, libXext, libXxf86vm, libXinerama, libSM, libXdmcp, readline
, readline, openal, libevdev, portaudio, curl , openal, libudev, libevdev, portaudio, curl, alsaLib, miniupnpc, enet, polarssl
, vulkan-loader ? null , soundtouch, sfml, vulkan-loader ? null, libpulseaudio ? null
, libpulseaudio ? null
# - Inputs used for Darwin # - Inputs used for Darwin
, CoreBluetooth, cf-private, ForceFeedback, IOKit, OpenGL, wxGTK, libpng, hidapi , CoreBluetooth, cf-private, ForceFeedback, IOKit, OpenGL, libpng, hidapi }:
# options
, dolphin-wxgui ? true
, dolphin-qtgui ? false }:
# XOR: ensure only wx XOR qt are enabled
assert dolphin-wxgui || dolphin-qtgui;
assert !(dolphin-wxgui && dolphin-qtgui);
let let
desktopItem = makeDesktopItem { desktopItem = makeDesktopItem {
name = "dolphin-emu-master"; name = "dolphin-emu-master";
exec = stdenv.lib.optionalString dolphin-wxgui "dolphin-emu-wx" exec = "dolphin-emu-master";
+ stdenv.lib.optionalString dolphin-qtgui "dolphin-emu-qt";
icon = "dolphin-emu"; icon = "dolphin-emu";
comment = "A Wii/GameCube Emulator"; comment = "A Wii/GameCube Emulator";
desktopName = "Dolphin Emulator (master)"; desktopName = "Dolphin Emulator (master)";
@ -30,63 +20,54 @@ let
}; };
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "dolphin-emu-${version}"; name = "dolphin-emu-${version}";
version = "2018-06-22"; version = "2018-07-02";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dolphin-emu"; owner = "dolphin-emu";
repo = "dolphin"; repo = "dolphin";
rev = "971972069cc2813ee7fa5b630c67baab2b35d12d"; rev = "87c5d00e2085090e51c1d44e4fd271437123c722";
sha256 = "0kf6dzvwmvhqb1iy15ldap0mmfbyyzl5f14jc65a110vwv5sww7n"; sha256 = "04f0my5k1vrj3pcg07m6wy4in4cs95db8367bp7zkraparmj1mjk";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;
nativeBuildInputs = [ cmake pkgconfig ] nativeBuildInputs = [ cmake pkgconfig ]
++ stdenv.lib.optionals stdenv.isLinux [ makeWrapper ]; ++ stdenv.lib.optionals stdenv.isLinux [ makeWrapper ];
buildInputs = [ buildInputs = [
curl ffmpeg libao libGLU_combined gtk2 glib pcre gettext libpthreadstubs curl ffmpeg libao libGLU_combined pcre gettext libpthreadstubs libpulseaudio
libXrandr libXext libXxf86vm libXinerama libSM readline openal libXdmcp libXrandr libXext libXxf86vm libXinerama libSM readline openal libXdmcp lzo
portaudio libusb libpulseaudio libpng hidapi portaudio libusb libpng hidapi miniupnpc enet polarssl soundtouch sfml
] ++ stdenv.lib.optionals dolphin-qtgui [ qt5.qtbase ] qt5.qtbase
++ stdenv.lib.optionals stdenv.isLinux [ bluez libevdev vulkan-loader ] ] ++ stdenv.lib.optionals stdenv.isLinux [
++ stdenv.lib.optionals stdenv.isDarwin [ wxGTK CoreBluetooth cf-private bluez libudev libevdev alsaLib vulkan-loader
ForceFeedback IOKit OpenGL ]; ] ++ stdenv.lib.optionals stdenv.isDarwin [
CoreBluetooth cf-private OpenGL ForceFeedback IOKit
];
cmakeFlags = [ cmakeFlags = [
"-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include" "-DUSE_SHARED_ENET=ON"
"-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include" "-DENABLE_LTO=ON"
"-DGTK2_INCLUDE_DIRS=${gtk2.dev}/include/gtk-2.0" ] ++ stdenv.lib.optionals stdenv.isDarwin [
"-DENABLE_LTO=True" "-DOSX_USE_DEFAULT_SEARCH_PATH=True"
] ++ stdenv.lib.optionals (!dolphin-qtgui) [ "-DENABLE_QT2=False" ] ];
++ stdenv.lib.optionals stdenv.isDarwin [
"-DOSX_USE_DEFAULT_SEARCH_PATH=True"
];
# - Change install path to Applications relative to $out
# - Allow Dolphin to use nix-provided libraries instead of building them # - Allow Dolphin to use nix-provided libraries instead of building them
preConfigure = stdenv.lib.optionalString stdenv.isDarwin '' preConfigure = ''
sed -i -e 's,/Applications,Applications,g' \ sed -i -e 's,DISTRIBUTOR "None",DISTRIBUTOR "NixOS",g' CMakeLists.txt
Source/Core/DolphinWX/CMakeLists.txt '' + stdenv.lib.optionalString stdenv.isDarwin ''
sed -i -e 's,if(NOT APPLE),if(true),g' CMakeLists.txt
sed -i -e 's,if(LIBUSB_FOUND AND NOT APPLE),if(LIBUSB_FOUND),g' \ sed -i -e 's,if(LIBUSB_FOUND AND NOT APPLE),if(LIBUSB_FOUND),g' \
CMakeLists.txt CMakeLists.txt
sed -i -e 's,if(NOT APPLE),if(true),g' CMakeLists.txt
'';
preInstall = stdenv.lib.optionalString stdenv.isDarwin ''
mkdir -p "$out/Applications"
''; '';
postInstall = '' postInstall = ''
cp -r ${desktopItem}/share/applications $out/share cp -r ${desktopItem}/share/applications $out/share
ln -sf $out/bin/dolphin-emu $out/bin/dolphin-emu-master
'' + stdenv.lib.optionalString stdenv.isLinux '' '' + stdenv.lib.optionalString stdenv.isLinux ''
wrapProgram $out/bin/dolphin-emu-nogui \ wrapProgram $out/bin/dolphin-emu-nogui \
--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib
wrapProgram $out/bin/dolphin-emu-wx \
--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib
'' + stdenv.lib.optionalString (dolphin-qtgui && stdenv.isLinux) ''
wrapProgram $out/bin/dolphin-emu \ wrapProgram $out/bin/dolphin-emu \
--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib
ln -sf $out/bin/dolphin-emu $out/bin/dolphin-emu-qt
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -2102,7 +2102,6 @@ with pkgs;
dolphinEmuMaster = callPackage ../misc/emulators/dolphin-emu/master.nix { dolphinEmuMaster = callPackage ../misc/emulators/dolphin-emu/master.nix {
inherit (darwin.apple_sdk.frameworks) CoreBluetooth ForceFeedback IOKit OpenGL; inherit (darwin.apple_sdk.frameworks) CoreBluetooth ForceFeedback IOKit OpenGL;
inherit (darwin) cf-private; inherit (darwin) cf-private;
wxGTK = wxGTK31;
}; };
doomseeker = qt5.callPackage ../applications/misc/doomseeker { }; doomseeker = qt5.callPackage ../applications/misc/doomseeker { };