From 871112b8dbd9b80689553405eb71640de0607ff1 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Fri, 17 Dec 2010 14:15:52 +0000 Subject: [PATCH] Adding Box2D version 2.0.1 svn path=/nixpkgs/trunk/; revision=25174 --- pkgs/development/libraries/box2d/2.0.1.nix | 78 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 79 insertions(+) create mode 100644 pkgs/development/libraries/box2d/2.0.1.nix diff --git a/pkgs/development/libraries/box2d/2.0.1.nix b/pkgs/development/libraries/box2d/2.0.1.nix new file mode 100644 index 00000000000..d714be740eb --- /dev/null +++ b/pkgs/development/libraries/box2d/2.0.1.nix @@ -0,0 +1,78 @@ +x@{builderDefsPackage + , unzip, cmake, mesa, freeglut, libX11, xproto + , inputproto, libXi + , ...}: +builderDefsPackage +(a : +let + helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ + []; + + buildInputs = map (n: builtins.getAttr n x) + (builtins.attrNames (builtins.removeAttrs x helperArgNames)); + sourceInfo = rec { + baseName="box2d"; + version="2.0.1"; + name="${baseName}-${version}"; + url="http://box2d.googlecode.com/files/Box2D_v${version}.zip"; + hash="62857048aa089b558561074154430883cee491eedd71247f75f488cba859e21f"; + }; +in +rec { + src = a.fetchurl { + url = sourceInfo.url; + sha256 = sourceInfo.hash; + }; + + inherit (sourceInfo) name version; + inherit buildInputs; + + phaseNames = ["fixIncludes" "setVars" "doMake" "doDeploy"]; + + goSrcDir = ''cd Box2D''; + + fixIncludes = a.fullDepEntry '' + sed -i Source/Dynamics/Contacts/b2PolyContact.cpp \ + -i Source/Dynamics/Contacts/b2CircleContact.cpp \ + -i Source/Dynamics/Contacts/b2PolyAndCircleContact.cpp \ + -i Source/Common/b2BlockAllocator.cpp \ + -i Source/Collision/b2BroadPhase.cpp \ + -i Examples/TestBed/Framework/Render.cpp \ + -i Examples/TestBed/Tests/BroadPhaseTest.cpp \ + -i Examples/TestBed/Tests/TestEntries.cpp \ + -e '1i#include ' + '' ["minInit" "addInputs" "doUnpack"]; + + setVars = a.noDepEntry '' + export NIX_LDFLAGS="$NIX_LDFLAGS -lX11 -lXi" + ''; + + doDeploy = a.fullDepEntry '' + ensureDir "$out"/lib + ensureDir "$out"/include/Box2D + cp Library/* Source/Gen/float/lib*.{a,so} "$out"/lib + cp -r Source "$out"/include/Box2D/Source + find "$out"/include/Box2D/Source ! -name '*.h' -exec rm '{}' ';' + sed -e s@../Source@Box2D/Source@ -i Include/Box2D.h + cp Include/Box2D.h "$out"/include/Box2D + ensureDir "$out/share" + cp -r Examples "$out/share" + '' ["minInit" "addInputs" "doMake" "defEnsureDir"]; + + meta = { + description = "2D physics engine"; + maintainers = with a.lib.maintainers; + [ + raskin + ]; + platforms = with a.lib.platforms; + linux; + license = "bsd"; + }; + passthru = { + updateInfo = { + downloadPage = "http://code.google.com/p/box2d/downloads/list"; + }; + }; +}) x + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c344af3750c..78a89c905d6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2702,6 +2702,7 @@ let botan = callPackage ../development/libraries/botan { }; box2d = callPackage ../development/libraries/box2d { }; + box2d = callPackage ../development/libraries/box2d/2.0.1.nix { }; buddy = callPackage ../development/libraries/buddy { };