pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / games / easyrpg-player / default.nix
blob558f3755d1cfd0bdb7d54af929e67b3c5d5c00cf
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , fetchpatch
5 , cmake
6 , doxygen
7 , pkg-config
8 , freetype
9 , fmt
10 , glib
11 , harfbuzz
12 , liblcf
13 , libpng
14 , libsndfile
15 , libvorbis
16 , libxmp
17 , libXcursor
18 , libXext
19 , libXi
20 , libXinerama
21 , libXrandr
22 , libXScrnSaver
23 , libXxf86vm
24 , mpg123
25 , opusfile
26 , pcre
27 , pixman
28 , SDL2
29 , speexdsp
30 , wildmidi
31 , zlib
32 , libdecor
33 , alsa-lib
34 , asciidoctor
35 , Foundation
36 , AudioUnit
37 , AudioToolbox
40 stdenv.mkDerivation rec {
41   pname = "easyrpg-player";
42   version = "0.8";
44   src = fetchFromGitHub {
45     owner = "EasyRPG";
46     repo = "Player";
47     rev = version;
48     hash = "sha256-t0sa9ONVVfsiTy+us06vU2bMa4QmmQeYxU395g0WS6w=";
49   };
51   patches = [
52     # Fixed compatibility with fmt > 9
53     # Remove when version > 0.8
54     (fetchpatch {
55       name = "0001-Fix-building-with-fmtlib-10.patch";
56       url = "https://github.com/EasyRPG/Player/commit/ab6286f6d01bada649ea52d1f0881dde7db7e0cf.patch";
57       hash = "sha256-GdSdVFEG1OJCdf2ZIzTP+hSrz+ddhTMBvOPjvYQHy54=";
58     })
59   ];
61   strictDeps = true;
63   nativeBuildInputs = [
64     asciidoctor
65     cmake
66     doxygen
67     pkg-config
68   ];
70   buildInputs = [
71     fmt
72     freetype
73     glib
74     harfbuzz
75     liblcf
76     libpng
77     libsndfile
78     libvorbis
79     libxmp
80     mpg123
81     opusfile
82     pcre
83     pixman
84     SDL2
85     speexdsp
86     zlib
87   ] ++ lib.optionals stdenv.hostPlatform.isLinux [
88     alsa-lib
89     libXcursor
90     libXext
91     libXi
92     libXinerama
93     libXrandr
94     libXScrnSaver
95     libXxf86vm
96     libdecor
97     wildmidi # until packaged on Darwin
98   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
99     Foundation
100     AudioUnit
101     AudioToolbox
102   ];
104   cmakeFlags = [
105     "-DPLAYER_ENABLE_TESTS=${lib.boolToString doCheck}"
106   ];
108   makeFlags = [
109     "all"
110     "man"
111   ];
113   buildFlags = lib.optionals doCheck [
114     "test_runner_player"
115   ];
117   postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
118     mkdir $out/bin
119     mv Package $out/Applications
120     ln -s $out/{Applications/EasyRPG\ Player.app/Contents/MacOS,bin}/EasyRPG\ Player
121   '';
123   doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
125   enableParallelChecking = true;
127   meta = with lib; {
128     description = "RPG Maker 2000/2003 and EasyRPG games interpreter";
129     homepage = "https://easyrpg.org/";
130     license = licenses.gpl3;
131     maintainers = [ ];
132     platforms = platforms.all;
133     mainProgram = lib.optionalString stdenv.hostPlatform.isDarwin "EasyRPG Player";
134   };