diff options
Diffstat (limited to 'nixpkgs/pkgs/games/ddnet/default.nix')
-rw-r--r-- | nixpkgs/pkgs/games/ddnet/default.nix | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/ddnet/default.nix b/nixpkgs/pkgs/games/ddnet/default.nix new file mode 100644 index 000000000000..f235430ca990 --- /dev/null +++ b/nixpkgs/pkgs/games/ddnet/default.nix @@ -0,0 +1,112 @@ +{ lib +, stdenv +, fetchFromGitHub +, cargo +, cmake +, ninja +, pkg-config +, rustPlatform +, rustc +, curl +, freetype +, libGLU +, libnotify +, libogg +, libX11 +, opusfile +, pcre +, python3 +, SDL2 +, sqlite +, wavpack +, ffmpeg +, x264 +, vulkan-headers +, vulkan-loader +, glslang +, spirv-tools +, gtest +, Carbon +, Cocoa +, OpenGL +, Security +}: + +stdenv.mkDerivation rec { + pname = "ddnet"; + version = "17.0.3"; + + src = fetchFromGitHub { + owner = "ddnet"; + repo = pname; + rev = version; + hash = "sha256-93zYa6Y5Da8ksaCbgRpePiehMHtcICs4hY6Ys+vUeHw="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + name = "${pname}-${version}"; + inherit src; + hash = "sha256-OeTINJVe/Ov3A4UmCC3QtCMj8e3vi+Qmai0DXJ3DpVU="; + }; + + nativeBuildInputs = [ + cmake + ninja + pkg-config + rustc + cargo + rustPlatform.cargoSetupHook + ]; + + nativeCheckInputs = [ + gtest + ]; + + buildInputs = [ + curl + freetype + libGLU + libnotify + libogg + libX11 + opusfile + pcre + python3 + SDL2 + sqlite + wavpack + ffmpeg + x264 + vulkan-loader + vulkan-headers + glslang + spirv-tools + ] ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa OpenGL Security ]; + + postPatch = '' + substituteInPlace src/engine/shared/storage.cpp \ + --replace /usr/ $out/ + ''; + + cmakeFlags = [ + "-DAUTOUPDATE=OFF" + ]; + + doCheck = true; + checkTarget = "run_tests"; + + meta = with lib; { + description = "A Teeworlds modification with a unique cooperative gameplay."; + longDescription = '' + DDraceNetwork (DDNet) is an actively maintained version of DDRace, + a Teeworlds modification with a unique cooperative gameplay. + Help each other play through custom maps with up to 64 players, + compete against the best in international tournaments, + design your own maps, or run your own server. + ''; + homepage = "https://ddnet.org"; + license = licenses.asl20; + maintainers = with maintainers; [ sirseruju lom ncfavier ]; + mainProgram = "DDNet"; + }; +} |