summary refs log tree commit diff
path: root/pkgs/games/sauerbraten
diff options
context:
space:
mode:
authorFelix Buehler <account@buehler.rocks>2021-11-11 01:56:17 +0100
committerFelix Buehler <account@buehler.rocks>2021-11-22 18:09:31 +0100
commitfb7be3d99891b2c80a1f0cf2ed90e6f696e3c109 (patch)
tree8312368f5723585c7dbe4906c9d401e39de5b356 /pkgs/games/sauerbraten
parent92b26546054776d5a383d2a3a04fe0a98f90c20d (diff)
downloadnixpkgs-fb7be3d99891b2c80a1f0cf2ed90e6f696e3c109.tar
nixpkgs-fb7be3d99891b2c80a1f0cf2ed90e6f696e3c109.tar.gz
nixpkgs-fb7be3d99891b2c80a1f0cf2ed90e6f696e3c109.tar.bz2
nixpkgs-fb7be3d99891b2c80a1f0cf2ed90e6f696e3c109.tar.lz
nixpkgs-fb7be3d99891b2c80a1f0cf2ed90e6f696e3c109.tar.xz
nixpkgs-fb7be3d99891b2c80a1f0cf2ed90e6f696e3c109.tar.zst
nixpkgs-fb7be3d99891b2c80a1f0cf2ed90e6f696e3c109.zip
sauerbraten: add desktop-icon
Diffstat (limited to 'pkgs/games/sauerbraten')
-rw-r--r--pkgs/games/sauerbraten/default.nix50
1 files changed, 39 insertions, 11 deletions
diff --git a/pkgs/games/sauerbraten/default.nix b/pkgs/games/sauerbraten/default.nix
index 1e43674d2a4..7373779c9e5 100644
--- a/pkgs/games/sauerbraten/default.nix
+++ b/pkgs/games/sauerbraten/default.nix
@@ -1,5 +1,13 @@
-{ lib, stdenv, fetchzip, SDL2, SDL2_image, SDL2_mixer
-, zlib, makeWrapper
+{ lib
+, stdenv
+, fetchzip
+, SDL2
+, SDL2_image
+, SDL2_mixer
+, zlib
+, makeWrapper
+, copyDesktopItems
+, makeDesktopItem
 }:
 
 stdenv.mkDerivation rec {
@@ -13,26 +21,47 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     makeWrapper
+    copyDesktopItems
   ];
 
   buildInputs = [
-    SDL2 SDL2_mixer SDL2_image
+    SDL2
+    SDL2_mixer
+    SDL2_image
     zlib
   ];
 
   sourceRoot = "source/src";
 
+  enableParallelBuilding = true;
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "sauerbraten";
+      exec = "sauerbraten_client %u";
+      icon = "sauerbraten";
+      desktopName = "Sauerbraten";
+      comment = "FPS that uses an improved version of the Cube engine";
+      categories = "Application;Game;ActionGame;";
+    })
+  ];
+
   installPhase = ''
-    mkdir -p $out/bin $out/share/sauerbraten $out/share/doc/sauerbraten
-    cp -rv "../docs/"* $out/share/doc/sauerbraten/
-    cp -v sauer_client sauer_server $out/share/sauerbraten/
-    cp -rv ../packages ../data $out/share/sauerbraten/
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/icon/ $out/share/sauerbraten $out/share/doc/sauerbraten
+    cp -r "../docs/"* $out/share/doc/sauerbraten/
+    cp sauer_client sauer_server $out/share/sauerbraten/
+    cp -r ../packages ../data $out/share/sauerbraten/
+    ln -s $out/share/sauerbraten/cube.png $out/share/icon/sauerbraten.png
 
     makeWrapper $out/share/sauerbraten/sauer_server $out/bin/sauerbraten_server \
       --run "cd $out/share/sauerbraten"
     makeWrapper $out/share/sauerbraten/sauer_client $out/bin/sauerbraten_client \
       --run "cd $out/share/sauerbraten" \
-      --add-flags "-q\''${HOME}"
+      --add-flags "-q\''${HOME}/.config/sauerbraten"
+
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -42,9 +71,8 @@ stdenv.mkDerivation rec {
     hydraPlatforms =
       # raskin: tested amd64-linux;
       # not setting platforms because it is 0.5+ GiB of game data
-      [];
-    license = "freeware"; # as an aggregate - data files have different licenses
-                          # code is under zlib license
+      [ ];
+    license = "freeware"; # as an aggregate - data files have different licenses code is under zlib license
     platforms = platforms.linux;
   };
 }