diff options
Diffstat (limited to 'pkgs/games/crawl/default.nix')
-rw-r--r-- | pkgs/games/crawl/default.nix | 64 |
1 files changed, 48 insertions, 16 deletions
diff --git a/pkgs/games/crawl/default.nix b/pkgs/games/crawl/default.nix index 6cb48d85f85..e99df5e6c74 100644 --- a/pkgs/games/crawl/default.nix +++ b/pkgs/games/crawl/default.nix @@ -1,24 +1,56 @@ -{ stdenv, fetchurl, sqlite, lua, which, zlib, pkgconfig, dejavu_fonts, - libpng, perl, SDL, SDL_image, ncurses, mesa}: +{ stdenv, fetchFromGitHub, which, sqlite, lua5_1, perl, zlib, pkgconfig, ncurses +, dejavu_fonts, libpng, SDL2, SDL2_image, mesa, freetype +, tileMode ? true +}: +let version = "0.16.1"; +in stdenv.mkDerivation rec { - name = "crawl-0.14.1"; - src = fetchurl { - url = "http://downloads.sourceforge.net/project/crawl-ref/Stone%20Soup/0.14.1/stone_soup-0.14.1-nodeps.tar.xz"; - sha256 = "91726d0224b93ba26b5d4bd3762bc5aabe1f02974ea6c937be89dc6c6ab7a4dd"; - }; + name = "crawl-${version}" + (if tileMode then "-tiles" else ""); + src = fetchFromGitHub { + owner = "crawl-ref"; + repo = "crawl-ref"; + rev = version; + sha256 = "0gciqaij05qr5bwkk5mblvk5k0p6bzjd58czk1b6x5xx5qcp6mmh"; + }; - patches = [ ./makefile_fonts.patch ./makefile_sqlite.patch - ./makefile_rltiles.patch ./makefile_rltiles2.patch - ./makefile_misc.patch ./makefile_prefix.patch - ]; + patches = [ ./crawl_purify.patch ]; - buildInputs = [stdenv pkgconfig lua zlib sqlite which libpng perl SDL - dejavu_fonts SDL_image ncurses mesa]; + nativeBuildInputs = [ pkgconfig which perl ]; - preBuild = "cd source"; + # Still unstable with luajit + buildInputs = [ lua5_1 zlib sqlite ncurses ] + ++ stdenv.lib.optionals tileMode + [ libpng SDL2 SDL2_image freetype mesa ]; - makeFlags = "TILES=y"; + preBuild = '' + cd crawl-ref/source + echo "${version}" > util/release_ver + # Related to issue #1963 + sed -i 's/-fuse-ld=gold//g' Makefile + for i in util/*; do + patchShebangs $i + done + patchShebangs util/gen-mi-enum + ''; - inherit dejavu_fonts sqlite SDL_image SDL; + makeFlags = [ "prefix=$(out)" "FORCE_CC=gcc" "FORCE_CXX=g++" "HOSTCXX=g++" + "SAVEDIR=~/.crawl" "sqlite=${sqlite}" ] + ++ stdenv.lib.optionals tileMode [ "TILES=y" "dejavu_fonts=${dejavu_fonts}" ]; + + postInstall = if tileMode then "mv $out/bin/crawl $out/bin/crawl-tiles" else ""; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "Open-source, single-player, role-playing roguelike game"; + longDescription = '' + 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 ]; + }; } |