nixpkgs/pkgs/games/crawl/default.nix
Chris Rendle-Short 82d31fd263 crawl: add .desktop file and use high-res app icon
The crawl source includes .desktop files but currently they are not
installed. This change installs them (with the executable path tweaked
for NixOS compatibility).

Also included in this change is an upstream patch to use the included
high-res app icon instead of the default 32x32 icon. The default icon
is very low res and looks out of place beside other app icons.
2019-04-26 20:14:41 +10:00

72 lines
2.7 KiB
Nix

{ stdenv, lib, fetchFromGitHub, fetchpatch, which, sqlite, lua5_1, perl, python3, zlib, pkgconfig, ncurses
, dejavu_fonts, libpng, SDL2, SDL2_image, SDL2_mixer, libGLU_combined, freetype, pngcrush, advancecomp
, tileMode ? false, enableSound ? tileMode
}:
stdenv.mkDerivation rec {
name = "crawl-${version}${lib.optionalString tileMode "-tiles"}";
version = "0.23.2";
src = fetchFromGitHub {
owner = "crawl";
repo = "crawl";
rev = version;
sha256 = "1d6mip4rvp81839yf2xm63hf34aza5wg4g5z5hi5275j94szaacs";
};
patches = [
./crawl_purify.patch # Patch hard-coded paths
(fetchpatch { # Use a nice high-res app icon
url = "https://github.com/crawl/crawl/commit/2aa1166087e44e6585b26cedf1fe81b3f3ba547f.patch";
sha256 = "1jqrdv4wy18shg1fdabdb421232hg5micphkixcyzxd1lrmvadg0";
})
];
nativeBuildInputs = [ pkgconfig which perl pngcrush advancecomp ];
# Still unstable with luajit
buildInputs = [ lua5_1 zlib sqlite ncurses ]
++ (with python3.pkgs; [ pyyaml ])
++ lib.optionals tileMode [ libpng SDL2 SDL2_image freetype libGLU_combined ]
++ lib.optional enableSound SDL2_mixer;
preBuild = ''
cd crawl-ref/source
echo "${version}" > util/release_ver
patchShebangs 'util'
patchShebangs util/gen-mi-enum
rm -rf contrib
'';
fontsPath = lib.optionalString tileMode dejavu_fonts;
makeFlags = [ "prefix=$(out)" "FORCE_CC=cc" "FORCE_CXX=c++" "HOSTCXX=c++"
"SAVEDIR=~/.crawl" "sqlite=${sqlite.dev}"
] ++ lib.optional tileMode "TILES=y"
++ lib.optional enableSound "SOUND=y";
postInstall = ''
${lib.optionalString tileMode "mv $out/bin/crawl $out/bin/crawl-tiles"}
sed -i 's#/usr/games/##' debian/crawl${lib.optionalString tileMode "-tiles"}.desktop
install -m 444 -D debian/crawl${lib.optionalString tileMode "-tiles"}.desktop \
$out/share/applications/crawl${lib.optionalString tileMode "-tiles"}.desktop
install -m 444 -D dat/tiles/stone_soup_icon-512x512.png $out/share/icons/hicolor/512x512/apps/crawl.png
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "Open-source, single-player, role-playing roguelike game";
homepage = http://crawl.develz.org/;
longDescription = ''
Dungeon Crawl: Stone Soup, an open-source, single-player, role-playing
roguelike game of exploration and treasure-hunting in dungeons filled
with dangerous and unfriendly monsters in a quest to rescue the
mystifyingly fabulous Orb of Zot.
'';
platforms = platforms.linux;
license = with licenses; [ gpl2Plus bsd2 bsd3 mit licenses.zlib cc0 ];
maintainers = [ maintainers.abbradar ];
};
}