summary refs log tree commit diff
path: root/pkgs/games/ivan/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/games/ivan/default.nix')
-rw-r--r--pkgs/games/ivan/default.nix25
1 files changed, 23 insertions, 2 deletions
diff --git a/pkgs/games/ivan/default.nix b/pkgs/games/ivan/default.nix
index 0a7474e0f51..8acab2eed0e 100644
--- a/pkgs/games/ivan/default.nix
+++ b/pkgs/games/ivan/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, SDL2, SDL2_mixer, alsaLib, libpng, pcre }:
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, SDL2, SDL2_mixer, alsaLib, libpng
+, pcre, graphicsmagick, makeDesktopItem }:
 
 stdenv.mkDerivation rec {
 
@@ -12,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "0mavmwikfsyr5sp65sl8dqknl1yz7c7ds53y1qkma24vsikz3k64";
   };
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig graphicsmagick ];
 
   buildInputs = [ SDL2 SDL2_mixer alsaLib libpng pcre ];
 
@@ -24,6 +25,26 @@ stdenv.mkDerivation rec {
   # Help CMake find SDL_mixer.h
   NIX_CFLAGS_COMPILE = "-I${SDL2_mixer}/include/SDL2";
 
+  # Create "ivan.desktop" file
+  ivanDesktop = makeDesktopItem {
+    name = pname;
+    exec = pname;
+    icon = "ivan.png";
+    desktopName = "IVAN";
+    genericName = pname;
+    categories = "Game;AdventureGame;RolePlaying;";
+    comment = meta.description;
+  };
+
+  # Create appropriate directories. Convert "Icon.bmp" to "ivan.png", then copy
+  # it and "ivan.desktop" to these directories.
+  postInstall = ''
+    mkdir -p $out/share/applications
+    mkdir -p $out/share/icons/hicolor/32x32/apps
+    gm convert $src/Graphics/Icon.bmp $out/share/icons/hicolor/32x32/apps/ivan.png
+    cp ${ivanDesktop}/share/applications/* $out/share/applications
+  '';
+
   meta = with stdenv.lib; {
     description = "Graphical roguelike game";
     longDescription = ''