diff --git a/pkgs/development/libraries/libtcod/default.nix b/pkgs/development/libraries/libtcod/default.nix new file mode 100644 index 000000000000..959c544876f3 --- /dev/null +++ b/pkgs/development/libraries/libtcod/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromBitbucket, cmake, SDL, mesa, upx }: + +stdenv.mkDerivation rec { + + name = "libtcod-${version}"; + version = "1.5.1"; + + src = fetchFromBitbucket { + owner = "libtcod"; + repo = "libtcod"; + rev = "1.5.1"; + sha256 = "1ibsnmnim712npxkqklc5ibnd32hgsx2yzyfzzc5fis5mhinbl63"; + }; + + prePatch = '' + sed -i CMakeLists.txt \ + -e "s,SET(ROOT_DIR.*,SET(ROOT_DIR $out),g" \ + -e "s,SET(INSTALL_DIR.*,SET(INSTALL_DIR $out),g" + echo 'INSTALL(DIRECTORY include DESTINATION .)' >> CMakeLists.txt + ''; + + cmakeFlags="-DLIBTCOD_SAMPLES=OFF"; + + buildInputs = [ cmake SDL mesa upx ]; + + meta = { + description = "API for roguelike games"; + homepage = http://roguecentral.org/doryen/libtcod/; + license = stdenv.lib.licenses.bsd3; + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.skeidel ]; + }; +} diff --git a/pkgs/games/brogue/default.nix b/pkgs/games/brogue/default.nix new file mode 100644 index 000000000000..134e94d1fc28 --- /dev/null +++ b/pkgs/games/brogue/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchurl, SDL, ncurses, libtcod, binutils }: + +stdenv.mkDerivation rec { + name = "brogue-${version}"; + version = "1.7.4"; + + src = fetchurl { + url = "https://sites.google.com/site/broguegame/brogue-${version}-linux-amd64.tbz2"; + sha256 = "1lygf17hm7wqlp0jppaz8dn9a9ksmxz12vw7jyfavvqpwdgz79gb"; + }; + + prePatch = '' + sed -i Makefile -e 's,LIBTCODDIR=.*,LIBTCODDIR=${libtcod},g' \ + -e 's,sdl-config,${SDL}/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 ]; + + installPhase = '' + install -m 555 -D bin/brogue $out/bin/brogue + mkdir -p $out/share/brogue + cp -r bin/fonts $out/share/brogue/ + ''; + + 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" ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6178ef483337..f9a81fdec5e0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8072,6 +8072,8 @@ in libtasn1 = callPackage ../development/libraries/libtasn1 { }; + libtcod = callPackage ../development/libraries/libtcod { }; + libtheora = callPackage ../development/libraries/libtheora { }; libtiff = callPackage ../development/libraries/libtiff { }; @@ -14845,6 +14847,8 @@ in blobby = callPackage ../games/blobby { }; + brogue = callPackage ../games/brogue { }; + bsdgames = callPackage ../games/bsdgames { }; btanks = callPackage ../games/btanks { };