diff options
Diffstat (limited to 'nixpkgs/pkgs/games/brogue/default.nix')
-rw-r--r-- | nixpkgs/pkgs/games/brogue/default.nix | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/brogue/default.nix b/nixpkgs/pkgs/games/brogue/default.nix new file mode 100644 index 000000000000..5040886eaa00 --- /dev/null +++ b/nixpkgs/pkgs/games/brogue/default.nix @@ -0,0 +1,51 @@ +{ stdenv, fetchurl, SDL, ncurses, libtcod, makeDesktopItem }: + +stdenv.mkDerivation rec { + name = "brogue-${version}"; + version = "1.7.5"; + + src = fetchurl { + url = "https://sites.google.com/site/broguegame/brogue-${version}-linux-amd64.tbz2"; + sha256 = "0i042zb3axjf0cpgpdh8hvfn66dbfizidyvw0iymjk2n760z2kx7"; + }; + + prePatch = '' + sed -i Makefile -e 's,LIBTCODDIR=.*,LIBTCODDIR=${libtcod},g' \ + -e 's,sdl-config,${SDL.dev}/bin/sdl-config,g' + sed -i src/platform/tcod-platform.c -e "s,fonts/font,$out/share/brogue/fonts/font,g" + make clean + rm -rf src/libtcod* + ''; + + buildInputs = [ SDL ncurses libtcod ]; + + desktopItem = makeDesktopItem { + name = "brogue"; + desktopName = "Brogue"; + genericName = "Roguelike"; + comment = "Brave the Dungeons of Doom!"; + icon = "brogue"; + exec = "brogue"; + categories = "Game;AdventureGame;"; + terminal = "false"; + }; + + installPhase = '' + install -m 555 -D bin/brogue $out/bin/brogue + install -m 444 -D ${desktopItem}/share/applications/brogue.desktop $out/share/applications/brogue.desktop + install -m 444 -D bin/brogue-icon.png $out/share/icons/hicolor/256x256/apps/brogue.png + mkdir -p $out/share/brogue + cp -r bin/fonts $out/share/brogue/ + ''; + + # fix crash; shouldn’t be a security risk because it’s an offline game + hardeningDisable = [ "stackprotector" "fortify" ]; + + meta = with stdenv.lib; { + description = "A roguelike game"; + homepage = https://sites.google.com/site/broguegame/; + license = licenses.agpl3; + maintainers = [ maintainers.skeidel ]; + platforms = [ "x86_64-linux" ]; + }; +} |