about summary refs log tree commit diff
path: root/nixpkgs/pkgs/games/fteqw/generic.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/games/fteqw/generic.nix')
-rw-r--r--nixpkgs/pkgs/games/fteqw/generic.nix61
1 files changed, 61 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/fteqw/generic.nix b/nixpkgs/pkgs/games/fteqw/generic.nix
new file mode 100644
index 000000000000..a525cf5a6c44
--- /dev/null
+++ b/nixpkgs/pkgs/games/fteqw/generic.nix
@@ -0,0 +1,61 @@
+{ lib
+, fetchFromGitHub
+, stdenv
+, libopus
+, xorg
+, pname
+, releaseFile ? pname
+, buildFlags
+, buildInputs
+, nativeBuildInputs ? []
+, postFixup ? ""
+, description
+, ... }:
+
+stdenv.mkDerivation {
+  inherit pname buildFlags buildInputs nativeBuildInputs postFixup;
+  version = "unstable-2023-08-03";
+
+  src = fetchFromGitHub {
+    owner = "fte-team";
+    repo = "fteqw";
+    rev = "3adec5d0a53ba9ae32a92fc0a805cf6d5ec107fb";
+    hash = "sha256-p/U02hwKI+YqlVXIS/7+gujknNDLr5L53unjvG5qLJU=";
+  };
+
+  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://fteqw.org";
+    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;
+  };
+}