about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/maintainers.nix1
-rw-r--r--pkgs/games/commandergenius/default.nix54
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 57 insertions, 0 deletions
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 3d83a0a3a1c0..a3540deb4072 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -163,6 +163,7 @@
   guibert = "David Guibert <david.guibert@gmail.com>";
   havvy = "Ryan Scheel <ryan.havvy@gmail.com>";
   hbunke = "Hendrik Bunke <bunke.hendrik@gmail.com>";
+  hce = "Hans-Christian Esperer <hc@hcesperer.org>";
   henrytill = "Henry Till <henrytill@gmail.com>";
   hiberno = "Christian Lask <hiberno@hiberno.net>";
   hinton = "Tom Hinton <t@larkery.com>";
diff --git a/pkgs/games/commandergenius/default.nix b/pkgs/games/commandergenius/default.nix
new file mode 100644
index 000000000000..007167dc696c
--- /dev/null
+++ b/pkgs/games/commandergenius/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, fetchFromGitHub, SDL2, SDL2_image, pkgconfig
+, libvorbis, libogg, mesa, boost, curl, zlib, cmake }:
+
+
+stdenv.mkDerivation rec {
+  name = "commandergenius-${version}";
+  version = "194beta";
+
+  src = fetchFromGitHub {
+    owner = "gerstrong";
+    repo = "Commander-Genius";
+    rev = "v${version}";
+    sha256 = "0qxqzlmadxklrhxilbqj7y94fmbv0byj6vgpl59lb77lgs4y4x47";
+  };
+
+  buildInputs = [ SDL2 SDL2_image pkgconfig libvorbis libogg mesa boost curl zlib cmake ];
+
+  patchPhase = ''
+    cat >> lib/GsKit/CMakeLists.txt <<EOF
+    execute_process(COMMAND sdl2-config --cflags
+      OUTPUT_VARIABLE CFLAGS)
+    string(REGEX REPLACE "^-I" "" CFLAGS2 \''${CFLAGS})
+    string(REGEX REPLACE " .*" "" SDLINC \''${CFLAGS2})
+    INCLUDE_DIRECTORIES(\''${SDLINC})
+    EOF
+  '';
+
+  configurePhase = ''
+    cmake -DUSE_SDL2=yes -DBUILD_TARGET=LINUX -DCMAKE_INSTALL_PREFIX:PATH=$out -DCPACK_PACKAGE_INSTALL_DIRECTORY=$out
+    sed -i 's_/usr/share_$out_g' cmake_install.cmake
+    sed -i 's_/usr/share_$out_g' src/cmake_install.cmake
+  '';
+
+  installTargets = [ ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp src/CGeniusExe $out/bin
+  '';
+
+  meta = {
+    description = "Modern Interpreter for the Commander Keen Games";
+    longdescription = ''
+      Commander Genius is an open-source clone of
+      Commander Keen which allows you to play
+      the games, and some of the mods
+      made for it. All of the original data files
+      are required to do so
+    '';
+    homepage = "https://github.com/gerstrong/Commander-Genius";
+    maintainers = with stdenv.lib.maintainers; [ hce ]; 
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3d848de8a6d8..adf8d7fe6439 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -15347,6 +15347,8 @@ in
 
   cockatrice = qt5.callPackage ../games/cockatrice {  };
 
+  commandergenius = callPackage ../games/commandergenius { };
+
   confd = callPackage ../tools/system/confd { };
 
   construoBase = lowPrio (callPackage ../games/construo {