Unverified Commit b6eba20e authored by Naïm Favier's avatar Naïm Favier Committed by GitHub
Browse files

Merge pull request #268658 from jtbx/teeworlds-buildClient

teeworlds, ddnet: add buildClient feature flag
parents d5da153f 9c0e68d9
Loading
Loading
Loading
Loading
+24 −6
Original line number Diff line number Diff line
@@ -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 = ''
+14 −4
Original line number Diff line number Diff line
@@ -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;

+2 −0
Original line number Diff line number Diff line
@@ -37672,6 +37672,7 @@ with pkgs;
  ddnet = callPackage ../games/ddnet {
    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa OpenGL Security;
  };
  ddnet-server = ddnet.override { buildClient = false; };
  ddns-go = callPackage ../tools/networking/ddns-go { };
@@ -38458,6 +38459,7 @@ with pkgs;
  teeworlds = callPackage ../games/teeworlds {
    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
  };
  teeworlds-server = teeworlds.override { buildClient = false; };
  tengine = callPackage ../servers/http/tengine {
    modules = with nginxModules; [ rtmp dav moreheaders modsecurity ];