about summary refs log tree commit diff
path: root/pkgs/games/crawl/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/games/crawl/default.nix')
-rw-r--r--pkgs/games/crawl/default.nix61
1 files changed, 45 insertions, 16 deletions
diff --git a/pkgs/games/crawl/default.nix b/pkgs/games/crawl/default.nix
index 6cb48d85f852..ba320e18d946 100644
--- a/pkgs/games/crawl/default.nix
+++ b/pkgs/games/crawl/default.nix
@@ -1,24 +1,53 @@
-{ stdenv, fetchurl, sqlite, lua, which, zlib, pkgconfig, dejavu_fonts,
-  libpng, perl, SDL, SDL_image, ncurses, mesa}:
+{ stdenv, fetchurl, which, sqlite, lua5_1, perl, zlib, pkgconfig, ncurses
+, dejavu_fonts, libpng, SDL, SDL_image, mesa, freetype
+, tileMode ? true
+}:
 
+let version = "0.15.2";
+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 = fetchurl {
+    url = "mirror://sourceforge/crawl-ref/Stone%20Soup/${version}/stone_soup-${version}-nodeps.tar.xz";
+    sha256 = "1qi1g8w0sxmwrv96hnay20gpwp1xn2xcq1cw9iwn1yq112484fp9";
+  };
 
-   patches = [ ./makefile_fonts.patch ./makefile_sqlite.patch
-               ./makefile_rltiles.patch ./makefile_rltiles2.patch
-               ./makefile_misc.patch ./makefile_prefix.patch
-   ];
+  patches = [ ./makefile_fonts.patch ./makefile_sqlite.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 SDL SDL_image freetype mesa ];
 
-   makeFlags = "TILES=y";
+  preBuild = ''
+    cd source
+    # Related to issue #1963
+    sed -i 's/-fuse-ld=gold//g' Makefile
+    for i in util/*.pl; 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;
+    licenses = with licenses; [ gpl2Plus bsd2 bsd3 mit zlib cc0 ];
+    maintainers = maintainers.abbradar;
+  };
 }