Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

box2d: 2.4.2 -> 3.0.0 #340470

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions pkgs/by-name/bo/box2d-lite/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitHub,

# nativeBuildInputs
cmake,

# buildInputs
glfw3,
libGL,
libX11,
}:

stdenv.mkDerivation rec {
pname = "box2d-lite";
version = "1.0.1";

src = fetchFromGitHub {
owner = "erincatto";
repo = "box2d-lite";
rev = "refs/tags/${version}";
hash = "sha256-XilbE1HsDgpTvmz2EmcF9OZBHkabNxuBAo08al0Zixo=";
};

nativeBuildInputs = [
cmake
];

buildInputs = [
glfw3
libGL
libX11
];

meta = {
description = "A small 2D physics engine";
homepage = "https://github.com/erincatto/box2d-lite";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ GaetanLepage ];
mainProgram = "box2d-lite";
platforms = lib.platforms.all;
};
}
16 changes: 16 additions & 0 deletions pkgs/by-name/bo/box2d/cmake_dont_fetch_enkits.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8c1390e..791d3b7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -83,10 +83,7 @@ if(PROJECT_IS_TOP_LEVEL)
# Used in tests and samples
FetchContent_Declare(
enkits
- GIT_REPOSITORY https://github.com/dougbinks/enkiTS.git
- GIT_TAG master
- GIT_SHALLOW TRUE
- GIT_PROGRESS TRUE
+ URL @enkits_src@
)
FetchContent_MakeAvailable(enkits)
endif()
44 changes: 44 additions & 0 deletions pkgs/by-name/bo/box2d/cmake_use_system_glfw_and_imgui.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt
index dd136f7..96c5db7 100644
--- a/samples/CMakeLists.txt
+++ b/samples/CMakeLists.txt
@@ -17,37 +17,11 @@ set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "GLFW Examples")
set(GLFW_BUILD_TESTS OFF CACHE BOOL "GLFW Tests")
set(GLFW_INSTALL OFF CACHE BOOL "GLFW Install")

-FetchContent_Declare(
- glfw
- GIT_REPOSITORY https://github.com/glfw/glfw.git
- GIT_TAG master
- GIT_SHALLOW TRUE
- GIT_PROGRESS TRUE
-)
-FetchContent_MakeAvailable(glfw)
+find_package(glfw)

# imgui and glfw backend for GUI
# https://gist.github.com/jeffamstutz/992723dfabac4e3ffff265eb71a24cd9
-FetchContent_Populate(imgui
- URL https://github.com/ocornut/imgui/archive/docking.zip
- SOURCE_DIR ${CMAKE_SOURCE_DIR}/build/imgui
-)
-
-set(IMGUI_DIR ${CMAKE_SOURCE_DIR}/build/imgui)
-
-add_library(imgui STATIC
- ${IMGUI_DIR}/imgui.cpp
- ${IMGUI_DIR}/imgui_draw.cpp
- ${IMGUI_DIR}/imgui_demo.cpp
- ${IMGUI_DIR}/imgui_tables.cpp
- ${IMGUI_DIR}/imgui_widgets.cpp
-
- ${IMGUI_DIR}/backends/imgui_impl_glfw.cpp
- ${IMGUI_DIR}/backends/imgui_impl_opengl3.cpp
-)
-target_link_libraries(imgui PUBLIC glfw glad)
-target_include_directories(imgui PUBLIC ${IMGUI_DIR} ${IMGUI_DIR}/backends)
-target_compile_definitions(imgui PUBLIC IMGUI_DISABLE_OBSOLETE_FUNCTIONS)
+find_package(imgui)

# jsmn for json
set(JSMN_DIR ${CMAKE_SOURCE_DIR}/extern/jsmn)
101 changes: 101 additions & 0 deletions pkgs/by-name/bo/box2d/package.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
{
lib,
stdenv,
fetchFromGitHub,

substituteAll,

# nativeBuildInputs
cmake,
pkg-config,

# buildInputs
glfw3,
imgui,
libGL,
libGLU,
libglut,
libX11,
libXcursor,
libXi,
libXinerama,
libXrandr,
xorgproto,
darwin,
}:

let
inherit (lib) cmakeBool optionals;

in
stdenv.mkDerivation (finalAttrs: {
pname = "box2d";
version = "3.0.0";

src = fetchFromGitHub {
owner = "erincatto";
repo = "box2d";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-ZS6v+Oq7wWjUY3ZEp6h7W7fQ5nUienz9N+ntXodgAVQ=";
};

patches = [
# prevent CMake from trying to download some libraries from the internet
(substituteAll {
src = ./cmake_dont_fetch_enkits.patch;
enkits_src = fetchFromGitHub {
owner = "dougbinks";
repo = "enkiTS";
rev = "686d0ec31829e0d9e5edf9ceb68c40f9b9b20ea9";
hash = "sha256-CerLj/WY+J3mrMvv7dGmZltjAM9v5C/IY4X+Ph78HVs=";
};
})
./cmake_use_system_glfw_and_imgui.patch
];

# Taken from https://github.com/erincatto/box2d/pull/784
postPatch = ''
substituteInPlace samples/settings.cpp \
--replace-fail "fread( data, size, 1, file );" "size_t count = fread( data, size, 1, file );"
substituteInPlace samples/shader.cpp \
--replace-fail "fread( source, size, 1, file );" "size_t count = fread( source, size, 1, file );"
'';

nativeBuildInputs = [
cmake
pkg-config
];

buildInputs =
[
glfw3
imgui
libGL
libGLU
libglut
libX11
libXcursor
libXi
libXinerama
libXrandr
xorgproto
]
++ optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.Carbon
darwin.apple_sdk.frameworks.Cocoa
darwin.apple_sdk.frameworks.Kernel
darwin.apple_sdk.frameworks.OpenGL
];

cmakeFlags = [
(cmakeBool "BOX2D_BUILD_UNIT_TESTS" finalAttrs.finalPackage.doCheck)
];

meta = {
description = "2D physics engine";
homepage = "https://box2d.org/";
maintainers = with lib.maintainers; [ raskin ];
platforms = lib.platforms.unix;
license = lib.licenses.zlib;
};
})
72 changes: 0 additions & 72 deletions pkgs/development/libraries/box2d/default.nix

This file was deleted.

20 changes: 11 additions & 9 deletions pkgs/development/libraries/qmlbox2d/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,16 @@ let
inherit (lib) cmakeBool;

# 2.3.1 is the only supported version
box2d' = (box2d.override { settingsFile = "Box2D/Common/b2Settings.h"; }).overrideAttrs (old: rec {
box2d' = box2d.overrideAttrs (old: rec {
version = "2.3.1";
src = fetchFromGitHub {
owner = "erincatto";
repo = "box2d";
rev = "v${version}";
rev = "refs/tags/v${version}";
hash = "sha256-Z2J17YMzQNZqABIa5eyJDT7BWfXveymzs+DWsrklPIs=";
};
patches = [];
postPatch = "";
sourceRoot = "${src.name}/Box2D";
cmakeFlags = old.cmakeFlags or [ ] ++ [
(cmakeBool "BOX2D_INSTALL" true)
Expand All @@ -23,13 +25,13 @@ let
in
stdenv.mkDerivation {
pname = "qml-box2d";
version = "unstable-2022-08-25";
version = "0-unstable-2024-04-15";

src = fetchFromGitHub {
owner = "qml-box2d";
repo = "qml-box2d";
rev = "0bb88a6f871eef72b3b9ded9329c15f1da1f4fd7";
hash = "sha256-sfSVetpHIAIujpgjvRScAkJRlQQYjQ/yQrkWvp7Yu0s=";
rev = "3a85439726d1ac4d082308feba45f23859ba71e0";
hash = "sha256-lTgzPJWSwNfPRj5Lc63C69o4ILuyhVRLvltTo5E7yq0=";
};

dontWrapQtApps = true;
Expand All @@ -42,11 +44,11 @@ stdenv.mkDerivation {
(cmakeBool "USE_SYSTEM_BOX2D" true)
];

meta = with lib; {
meta = {
description = "QML plugin for Box2D engine";
homepage = "https://github.com/qml-box2d/qml-box2d";
maintainers = with maintainers; [ guibou ];
platforms = platforms.linux;
license = licenses.zlib;
maintainers = with lib.maintainers; [ guibou ];
platforms = lib.platforms.linux;
license = lib.licenses.zlib;
};
}
4 changes: 0 additions & 4 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -19069,10 +19069,6 @@ with pkgs;
botan3
;

box2d = callPackage ../development/libraries/box2d {
inherit (darwin.apple_sdk.frameworks) Carbon Cocoa Kernel OpenGL;
};

boxfort = callPackage ../development/libraries/boxfort { };

brunsli = callPackage ../development/libraries/brunsli { };
Expand Down