diff options
Diffstat (limited to 'pkgs/games/easyrpg-player/default.nix')
-rw-r--r-- | pkgs/games/easyrpg-player/default.nix | 112 |
1 files changed, 95 insertions, 17 deletions
diff --git a/pkgs/games/easyrpg-player/default.nix b/pkgs/games/easyrpg-player/default.nix index c95ca576eca..ea68c3a110e 100644 --- a/pkgs/games/easyrpg-player/default.nix +++ b/pkgs/games/easyrpg-player/default.nix @@ -1,23 +1,71 @@ -{ lib, stdenv, fetchFromGitHub, cmake, doxygen ? null, pkg-config -, freetype ? null, fmt, glib, harfbuzz ? null -, liblcf, libpng, libsndfile ? null, libvorbis ? null, libxmp ? null -, libXcursor, libXext, libXi, libXinerama, libXrandr, libXScrnSaver, libXxf86vm -, mpg123 ? null, opusfile ? null, pcre, pixman, SDL2, speexdsp ? null, wildmidi ? null, zlib +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, cmake +, doxygen +, pkg-config +, freetype +, fmt +, glib +, harfbuzz +, liblcf +, libpng +, libsndfile +, libvorbis +, libxmp +, libXcursor +, libXext +, libXi +, libXinerama +, libXrandr +, libXScrnSaver +, libXxf86vm +, mpg123 +, opusfile +, pcre +, pixman +, SDL2 +, speexdsp +, wildmidi +, zlib , libdecor +, alsa-lib +, asciidoctor +, Foundation +, AudioUnit +, AudioToolbox }: stdenv.mkDerivation rec { pname = "easyrpg-player"; - version = "0.7.0"; + version = "0.8"; src = fetchFromGitHub { owner = "EasyRPG"; repo = "Player"; rev = version; - sha256 = "049bj3jg3ldi3n11nx8xvh6pll68g7dcxz51q6z1gyyfxxws1qpj"; + hash = "sha256-t0sa9ONVVfsiTy+us06vU2bMa4QmmQeYxU395g0WS6w="; }; - nativeBuildInputs = [ cmake doxygen pkg-config ]; + patches = [ + # Fixed compatibility with fmt > 9 + # Remove when version > 0.8 + (fetchpatch { + name = "0001-Fix-building-with-fmtlib-10.patch"; + url = "https://github.com/EasyRPG/Player/commit/ab6286f6d01bada649ea52d1f0881dde7db7e0cf.patch"; + hash = "sha256-GdSdVFEG1OJCdf2ZIzTP+hSrz+ddhTMBvOPjvYQHy54="; + }) + ]; + + strictDeps = true; + + nativeBuildInputs = [ + asciidoctor + cmake + doxygen + pkg-config + ]; buildInputs = [ fmt @@ -29,29 +77,59 @@ stdenv.mkDerivation rec { libsndfile libvorbis libxmp - libXcursor - libXext - libXi - libXinerama - libXrandr - libXScrnSaver - libXxf86vm mpg123 opusfile pcre pixman SDL2 speexdsp - wildmidi zlib + ] ++ lib.optionals stdenv.hostPlatform.isLinux [ + alsa-lib + libXcursor + libXext + libXi + libXinerama + libXrandr + libXScrnSaver + libXxf86vm libdecor + wildmidi # until packaged on Darwin + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + Foundation + AudioUnit + AudioToolbox ]; + cmakeFlags = [ + "-DPLAYER_ENABLE_TESTS=${lib.boolToString doCheck}" + ]; + + makeFlags = [ + "all" + "man" + ]; + + buildFlags = lib.optionals doCheck [ + "test_runner_player" + ]; + + postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' + mkdir $out/bin + mv Package $out/Applications + ln -s $out/{Applications/EasyRPG\ Player.app/Contents/MacOS,bin}/EasyRPG\ Player + ''; + + doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; + + enableParallelChecking = true; + meta = with lib; { description = "RPG Maker 2000/2003 and EasyRPG games interpreter"; homepage = "https://easyrpg.org/"; license = licenses.gpl3; maintainers = with maintainers; [ yana ]; - platforms = platforms.linux; + platforms = platforms.all; + mainProgram = lib.optionalString stdenv.hostPlatform.isDarwin "EasyRPG Player"; }; } |