about summary refs log tree commit diff
path: root/nixpkgs/pkgs/games/cdogs-sdl/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/games/cdogs-sdl/default.nix')
-rw-r--r--nixpkgs/pkgs/games/cdogs-sdl/default.nix64
1 files changed, 64 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/cdogs-sdl/default.nix b/nixpkgs/pkgs/games/cdogs-sdl/default.nix
new file mode 100644
index 000000000000..e6ea213b6220
--- /dev/null
+++ b/nixpkgs/pkgs/games/cdogs-sdl/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, SDL2
+, SDL2_image
+, SDL2_mixer
+, cmake
+, gtk3-x11
+, python3
+, protobuf
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cdogs-sdl";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "cxong";
+    rev = version;
+    sha256 = "sha256-es04sCqthjf9unK2mbsBVHlxOeTpimQ+ViabhC/WD0I=";
+  };
+
+  postPatch = ''
+    patchShebangs src/proto/nanopb/generator/*
+  '';
+
+  cmakeFlags = [
+    "-DCDOGS_DATA_DIR=${placeholder "out"}/"
+    "-DCMAKE_C_FLAGS=-Wno-error=array-bounds"
+  ];
+
+  env.NIX_CFLAGS_COMPILE = toString [
+    # Needed with GCC 12
+    "-Wno-error=stringop-overflow"
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+    (python3.withPackages (pp: with pp; [ pp.protobuf setuptools ]))
+  ];
+
+  buildInputs = [
+    SDL2
+    SDL2_image
+    SDL2_mixer
+    gtk3-x11
+    protobuf
+  ];
+
+  # inlining failed in call to 'tinydir_open': --param max-inline-insns-single limit reached
+  hardeningDisable = [ "fortify3" ];
+
+  meta = with lib; {
+    homepage = "https://cxong.github.io/cdogs-sdl";
+    description = "Open source classic overhead run-and-gun game";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ nixinator ];
+    platforms = platforms.unix;
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/cdogs-sdl.x86_64-darwin
+  };
+}