diff --git a/pkgs/games/brogue-ce/default.nix b/pkgs/games/brogue-ce/default.nix new file mode 100644 index 000000000000..0691d82f175a --- /dev/null +++ b/pkgs/games/brogue-ce/default.nix @@ -0,0 +1,63 @@ +{ lib +, stdenv +, fetchFromGitHub +, makeDesktopItem +, copyDesktopItems +, SDL2 +, SDL2_image +}: + +stdenv.mkDerivation rec { + pname = "brogue-ce"; + version = "1.12"; + + src = fetchFromGitHub { + owner = "tmewett"; + repo = "BrogueCE"; + rev = "v${version}"; + hash = "sha256-bGAE0hRiKBo3ikyObGxAiPRRO24KtC+upO3XLj+f4yo="; + }; + + postPatch = '' + substituteInPlace linux/brogue-multiuser.sh \ + --replace broguedir= "broguedir=$out/opt/brogue-ce #" + ''; + + nativeBuildInputs = [ + copyDesktopItems + ]; + + buildInputs = [ + SDL2 + SDL2_image + ]; + + makeFlags = [ "DATADIR=$(out)/opt/brogue-ce" ]; + + desktopItems = [(makeDesktopItem { + name = "brogue-ce"; + desktopName = "Brogue CE"; + genericName = "Roguelike"; + comment = "Brave the Dungeons of Doom!"; + icon = "brogue-ce"; + exec = "brogue-ce"; + categories = [ "Game" "AdventureGame" ]; + })]; + + installPhase = '' + runHook preInstall + mkdir -p $out/opt + cp -r bin $out/opt/brogue-ce + install -Dm755 linux/brogue-multiuser.sh $out/bin/brogue-ce + install -Dm 644 bin/assets/icon.png $out/share/icons/hicolor/256x256/apps/brogue-ce.png + runHook postInstall + ''; + + meta = with lib; { + description = "A community-lead fork of the minimalist roguelike game Brogue"; + homepage = "https://github.com/tmewett/BrogueCE"; + license = licenses.agpl3; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d5c6a660b866..23582bef6d1f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -37550,6 +37550,8 @@ with pkgs; brogue = callPackage ../games/brogue { }; + brogue-ce = callPackage ../games/brogue-ce { }; + brutalmaze = callPackage ../games/brutalmaze { }; bsdgames = callPackage ../games/bsdgames { };