diff options
Diffstat (limited to 'packages/unciv/default.nix')
-rw-r--r-- | packages/unciv/default.nix | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/packages/unciv/default.nix b/packages/unciv/default.nix new file mode 100644 index 0000000..7980c59 --- /dev/null +++ b/packages/unciv/default.nix @@ -0,0 +1,76 @@ +{ + stdenv, + lib, + fetchurl, + copyDesktopItems, + makeDesktopItem, + makeWrapper, + jre, + libGL, + libpulseaudio, + libXxf86vm, +}: +stdenv.mkDerivation rec { + pname = "unciv"; + version = "4.17.2"; + + desktopIcon = fetchurl { + url = "https://github.com/yairm210/Unciv/blob/${version}/extraImages/Icons/Unciv%20icon%20v6.png?raw=true"; + hash = "sha256-Zuz+HGfxjGviGBKTiHdIFXF8UMRLEIfM8f+LIB/xonk="; + }; + + src = fetchurl { + url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar"; + hash = "sha256-zLH7juFlPkvM6xbVrmsAuIrvoGOXMrZswujbU6u7bms="; + }; + + envLibPath = lib.makeLibraryPath ( + lib.optionals stdenv.hostPlatform.isLinux [ + libGL + libpulseaudio + libXxf86vm + ] + ); + + desktopItem = makeDesktopItem { + name = "unciv"; + exec = "unciv"; + comment = "An open-source Android/Desktop remake of Civ V"; + desktopName = "Unciv"; + icon = "unciv"; + categories = [ "Game" ]; + }; + + dontUnpack = true; + + nativeBuildInputs = [ + copyDesktopItems + makeWrapper + ]; + + installPhase = '' + runHook preInstall + + makeWrapper ${jre}/bin/java $out/bin/unciv \ + --prefix LD_LIBRARY_PATH : "${envLibPath}" \ + --prefix PATH : ${lib.makeBinPath [ jre ]} \ + --add-flags "-jar ${src}" + + install -Dm444 ${desktopIcon} $out/share/icons/hicolor/512x512/apps/unciv.png + + runHook postInstall + ''; + + desktopItems = [ desktopItem ]; + + meta = with lib; { + description = "Open-source Android/Desktop remake of Civ V"; + mainProgram = "unciv"; + homepage = "https://github.com/yairm210/Unciv"; + maintainers = with maintainers; [ tex ]; + sourceProvenance = with sourceTypes; [ binaryBytecode ]; + license = licenses.mpl20; + platforms = platforms.all; + }; +} + |