about summary refs log tree commit diff
path: root/pkgs/games
diff options
context:
space:
mode:
authorNaïm Favier <n@monade.li>2023-11-20 23:45:13 +0100
committerGitHub <noreply@github.com>2023-11-20 23:45:13 +0100
commitb6eba20e67f807f67318c436081908c5794419ac (patch)
treed722fdd5651c0783edbf2c5d6350e7947a5df725 /pkgs/games
parentd5da153f068b50e1c4e8e27e8421e62e40f62634 (diff)
parent9c0e68d9a82216f1e4bcf3376aa05da0bde58ce7 (diff)
Merge pull request #268658 from jtbx/teeworlds-buildClient
teeworlds, ddnet: add buildClient feature flag
Diffstat (limited to 'pkgs/games')
-rw-r--r--pkgs/games/ddnet/default.nix30
-rw-r--r--pkgs/games/teeworlds/default.nix18
2 files changed, 38 insertions, 10 deletions
diff --git a/pkgs/games/ddnet/default.nix b/pkgs/games/ddnet/default.nix
index 98da304c85abd..6a6fc63e8c409 100644
--- a/pkgs/games/ddnet/default.nix
+++ b/pkgs/games/ddnet/default.nix
@@ -30,6 +30,7 @@
 , Cocoa
 , OpenGL
 , Security
+, buildClient ? true
 }:
 
 stdenv.mkDerivation rec {
@@ -64,16 +65,16 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     curl
+    libnotify
+    pcre
+    python3
+    sqlite
+  ] ++ lib.optionals buildClient ([
     freetype
     libGLU
-    libnotify
     libogg
-    libX11
     opusfile
-    pcre
-    python3
     SDL2
-    sqlite
     wavpack
     ffmpeg
     x264
@@ -81,7 +82,14 @@ stdenv.mkDerivation rec {
     vulkan-headers
     glslang
     spirv-tools
-  ] ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa OpenGL Security ];
+  ] ++ lib.optionals stdenv.isLinux [
+    libX11
+  ] ++ lib.optionals stdenv.isDarwin [
+    Carbon
+    Cocoa
+    OpenGL
+    Security
+  ]);
 
   postPatch = ''
     substituteInPlace src/engine/shared/storage.cpp \
@@ -90,11 +98,21 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DAUTOUPDATE=OFF"
+    "-DCLIENT=${if buildClient then "ON" else "OFF"}"
   ];
 
   doCheck = true;
   checkTarget = "run_tests";
 
+  postInstall = lib.optionalString (!buildClient) ''
+    # DDNet's CMakeLists.txt automatically installs .desktop
+    # shortcuts and icons for the client, even if the client
+    # is not supposed to be built
+    rm -rf $out/share/applications
+    rm -rf $out/share/icons
+    rm -rf $out/share/metainfo
+  '';
+
   meta = with lib; {
     description = "A Teeworlds modification with a unique cooperative gameplay.";
     longDescription = ''
diff --git a/pkgs/games/teeworlds/default.nix b/pkgs/games/teeworlds/default.nix
index e12c19f6cb6a6..a915832fdbe90 100644
--- a/pkgs/games/teeworlds/default.nix
+++ b/pkgs/games/teeworlds/default.nix
@@ -3,6 +3,7 @@
 , nixosTests
 , Carbon
 , Cocoa
+, buildClient ? true
 }:
 
 stdenv.mkDerivation rec {
@@ -38,21 +39,30 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     cmake
     pkg-config
-  ] ++ lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals (buildClient && stdenv.isLinux) [
     icoutils
   ];
 
   buildInputs = [
-    python3 libGLU SDL2 lua5_3 zlib freetype wavpack
+    python3 lua5_3 zlib
+  ] ++ lib.optionals buildClient ([
+    libGLU
+    SDL2
+    freetype
+    wavpack
   ] ++ lib.optionals stdenv.isLinux [
     alsa-lib
     libX11
   ] ++ lib.optionals stdenv.isDarwin [
     Carbon
     Cocoa
+  ]);
+
+  cmakeFlags = [
+    "-DCLIENT=${if buildClient then "ON" else "OFF"}"
   ];
 
-  postInstall = lib.optionalString stdenv.isLinux ''
+  postInstall = lib.optionalString buildClient (lib.optionalString stdenv.isLinux ''
     # Convert and install desktop icon
     mkdir -p $out/share/pixmaps
     icotool --extract --index 1 --output $out/share/pixmaps/teeworlds.png $src/other/icons/teeworlds.ico
@@ -68,7 +78,7 @@ stdenv.mkDerivation rec {
     cp '../other/bundle/client/PkgInfo' "$out/Applications/teeworlds.app/Contents/"
     ln -s "$out/bin/teeworlds" "$out/Applications/teeworlds.app/Contents/MacOS/"
     ln -s "$out/share/teeworlds/data" "$out/Applications/teeworlds.app/Contents/Resources/data"
-  '';
+  '');
 
   passthru.tests.teeworlds = nixosTests.teeworlds;