nixpkgs/pkgs/misc/emulators/dolphin-emu/default.nix
Linus Heckemann 3e31f2a645 dolphin-emu: include more dependencies
Previously, dolphin would build against vendored copies of the
libraries (shipped in source code form). This would result both
in a longer build (wxWidgets takes a while to build!) and in
bulkier binaries that wouldn't share libraries with others,
along with using fixed versions of curl and mbedtls which may
be left with unpatched security vulnerabilities.
2017-04-30 13:20:52 +01:00

48 lines
1.6 KiB
Nix

{ stdenv, pkgconfig, cmake, bluez, ffmpeg, libao, gtk2, glib, mesa
, gettext, libpthreadstubs, libXrandr, libXext, readline, openal
, libXdmcp, portaudio, fetchFromGitHub, libusb, libevdev
, wxGTK30, soundtouch, miniupnpc, mbedtls, curl, lzo, sfml
, libpulseaudio ? null }:
stdenv.mkDerivation rec {
name = "dolphin-emu-${version}";
version = "5.0";
src = fetchFromGitHub {
owner = "dolphin-emu";
repo = "dolphin";
rev = version;
sha256 = "07mlfnh0hwvk6xarcg315x7z2j0qbg9g7cm040df9c8psiahc3g6";
};
postPatch = ''
substituteInPlace Source/Core/VideoBackends/OGL/RasterFont.cpp \
--replace " CHAR_WIDTH " " CHARWIDTH "
'';
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
'';
enableParallelBuilding = true;
buildInputs = [ pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib
gettext libpthreadstubs libXrandr libXext readline openal
libevdev libXdmcp portaudio libusb libpulseaudio
libevdev libXdmcp portaudio libusb libpulseaudio
wxGTK30 soundtouch miniupnpc mbedtls curl lzo sfml ];
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 ];
# x86_32 is an unsupported platform.
# Enable generic build if you really want a JIT-less binary.
platforms = [ "x86_64-linux" ];
};
}