summary refs log tree commit diff
path: root/pkgs/games/fteqw/generic.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/games/fteqw/generic.nix')
-rw-r--r--pkgs/games/fteqw/generic.nix60
1 files changed, 60 insertions, 0 deletions
diff --git a/pkgs/games/fteqw/generic.nix b/pkgs/games/fteqw/generic.nix
new file mode 100644
index 00000000000..a420657ea57
--- /dev/null
+++ b/pkgs/games/fteqw/generic.nix
@@ -0,0 +1,60 @@
+{ lib
+, fetchsvn
+, stdenv
+, libopus
+, xorg
+, pname
+, releaseFile ? pname
+, buildFlags
+, buildInputs
+, nativeBuildInputs ? []
+, postFixup ? ""
+, description
+, ... }:
+
+stdenv.mkDerivation {
+  inherit pname buildFlags buildInputs nativeBuildInputs postFixup;
+  version = "unstable-2022-08-09";
+
+  src = fetchsvn {
+    url = "https://svn.code.sf.net/p/fteqw/code/trunk";
+    rev = "6303";
+    sha256 = "sha256-tSTFX59iVUvndPRdREayKpkQ+YCYKCMQe2PXZfnTgPQ=";
+  };
+
+  makeFlags = [
+    "PKGCONFIG=$(PKG_CONFIG)"
+    "-C" "engine"
+  ];
+
+  enableParallelBuilding = true;
+  postPatch = ''
+    substituteInPlace ./engine/Makefile \
+      --replace "I/usr/include/opus" "I${libopus.dev}/include/opus"
+    substituteInPlace ./engine/gl/gl_vidlinuxglx.c \
+      --replace 'Sys_LoadLibrary("libXrandr"' 'Sys_LoadLibrary("${xorg.libXrandr}/lib/libXrandr.so"'
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 engine/release/${releaseFile} $out/bin/${pname}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    inherit description;
+    homepage = "https://fte.triptohell.info";
+    longDescription = ''
+      FTE is a game engine baed on QuakeWorld able to
+      play games such as Quake 1, 2, 3, and Hexen 2.
+      It includes various features such as extended map
+      limits, vulkan and OpenGL renderers, a dedicated
+      server, and fteqcc, for easier QuakeC development
+    '';
+    maintainers = with maintainers; [ necrophcodr ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+}