summary refs log tree commit diff
path: root/pkgs/misc/emulators/nestopia/default.nix
blob: 059b3791d114ed2ff7da02a30b9cab1f9811b08b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
{ lib, stdenv, fetchFromGitHub, pkgconfig, SDL2, alsaLib, gtk3
, makeWrapper, libGLU, libGL, libarchive, libao, unzip, xdg_utils
, epoxy, gdk-pixbuf, gnome3, wrapGAppsHook
}:

stdenv.mkDerivation rec {
  version = "1.47";
  pname = "nestopia";

  src = fetchFromGitHub {
    owner = "rdanbrook";
    repo = "nestopia";
    rev = version;
    sha256 = "0frr0gvjh5mxzdhj0ii3sh671slgnzlm8naqlc4h87rx4p4sz2y2";
  };

  # nondeterministic failures when creating directories
  enableParallelBuilding = false;

  hardeningDisable = [ "format" ];

  buildInputs = [
    SDL2
    alsaLib
    epoxy
    gtk3
    gdk-pixbuf
    libGLU libGL
    libarchive
    libao
    unzip
    xdg_utils
    gnome3.adwaita-icon-theme
  ];

  nativeBuildInputs = [
    pkgconfig
    makeWrapper
    wrapGAppsHook
  ];

  installPhase = ''
    mkdir -p $out/{bin,share/nestopia}
    make install PREFIX=$out
  '';

  preFixup = ''
     for f in $out/bin/*; do
       wrapProgram $f \
         --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share"
     done
  '';

  patches = [
    #(fetchpatch {
    #  url = "https://github.com/rdanbrook/nestopia/commit/f4bc74ac4954328b25e961e7afb7337377084079.patch";
    #  name = "gcc6.patch";
    #  sha256 = "1jy0c85xsfk9hrv5a6v0kk48d94864qb62yyni9fp93kyl33y2p4";
    #})
    ./gcc6.patch
    ./build-fix.patch
  ];

  meta = {
    homepage = "http://0ldsk00l.ca/nestopia/";
    description = "NES emulator with a focus on accuracy";
    license = lib.licenses.gpl2;
    platforms = lib.platforms.linux;
    maintainers = with lib.maintainers; [ MP2E ];
  };
}