about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/box2d
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2024-05-03 15:14:25 +0200
committerAlyssa Ross <hi@alyssa.is>2024-05-07 11:19:19 +0200
commitd92b2b6a1bbd322dd65a8b6f51019610d350046e (patch)
tree7f7c21927b9cc05676501f297c51eb76b49e326c /nixpkgs/pkgs/development/libraries/box2d
parent93c9e56b40530cc627d921cfc255c05b495d4017 (diff)
parent49050352f602fe87d16ff7b2b6a05b79eb20dc6f (diff)
downloadnixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.gz
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.bz2
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.lz
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.xz
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.tar.zst
nixlib-d92b2b6a1bbd322dd65a8b6f51019610d350046e.zip
Merge remote-tracking branch 'nixpkgs/nixos-unstable-small'
Conflicts:
	nixpkgs/nixos/modules/services/mail/mailman.nix
	nixpkgs/nixos/modules/services/mail/public-inbox.nix
	nixpkgs/pkgs/build-support/go/module.nix
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/box2d')
-rw-r--r--nixpkgs/pkgs/development/libraries/box2d/default.nix65
1 files changed, 50 insertions, 15 deletions
diff --git a/nixpkgs/pkgs/development/libraries/box2d/default.nix b/nixpkgs/pkgs/development/libraries/box2d/default.nix
index 84e2dbc05644..c2611a8b8dff 100644
--- a/nixpkgs/pkgs/development/libraries/box2d/default.nix
+++ b/nixpkgs/pkgs/development/libraries/box2d/default.nix
@@ -1,37 +1,72 @@
-{ lib, stdenv, fetchFromGitHub, cmake, libGLU, libGL, freeglut, libX11, xorgproto
-, libXi, pkg-config }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, libGLU
+, libGL
+, freeglut
+, libX11
+, libXcursor
+, libXinerama
+, libXrandr
+, xorgproto
+, libXi
+, pkg-config
+, Carbon
+, Cocoa
+, Kernel
+, OpenGL
+, settingsFile ? "include/box2d/b2_settings.h"
+}:
 
-stdenv.mkDerivation rec {
+let
+  inherit (lib) cmakeBool optionals;
+
+in
+stdenv.mkDerivation (finalAttrs: {
   pname = "box2d";
-  version = "2.3.1";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "erincatto";
     repo = "box2d";
-    rev = "v${version}";
-    sha256 = "sha256-Z2J17YMzQNZqABIa5eyJDT7BWfXveymzs+DWsrklPIs=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-cL8L+WSTcswj+Bwy8kSOwuEqLyWEM6xa/j/94aBiSck=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ libGLU libGL freeglut libX11 xorgproto libXi ];
+
+  buildInputs = [
+    libGLU
+    libGL
+    freeglut
+    libX11
+    libXcursor
+    libXinerama
+    libXrandr
+    xorgproto
+    libXi
+  ] ++ optionals stdenv.isDarwin [
+    Carbon Cocoa Kernel OpenGL
+  ];
 
   cmakeFlags = [
-    "-DBOX2D_INSTALL=ON"
-    "-DBOX2D_BUILD_SHARED=ON"
-    "-DBOX2D_BUILD_EXAMPLES=OFF"
+    (cmakeBool "BOX2D_BUILD_UNIT_TESTS" finalAttrs.doCheck)
   ];
 
   prePatch = ''
-    cd Box2D
-    substituteInPlace Box2D/Common/b2Settings.h \
-      --replace 'b2_maxPolygonVertices	8' 'b2_maxPolygonVertices	15'
+    substituteInPlace ${settingsFile}  \
+      --replace-fail 'b2_maxPolygonVertices	8' 'b2_maxPolygonVertices	15'
   '';
 
+  # tests are broken on 2.4.1 and 2.3.x doesn't have tests: https://github.com/erincatto/box2d/issues/677
+  doCheck = lib.versionAtLeast finalAttrs.version "2.4.2";
+
   meta = with lib; {
     description = "2D physics engine";
     homepage = "https://box2d.org/";
-    maintainers = [ maintainers.raskin ];
+    maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
     license = licenses.zlib;
   };
-}
+})