about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/pinocchio
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/pinocchio')
-rw-r--r--nixpkgs/pkgs/development/libraries/pinocchio/default.nix35
1 files changed, 27 insertions, 8 deletions
diff --git a/nixpkgs/pkgs/development/libraries/pinocchio/default.nix b/nixpkgs/pkgs/development/libraries/pinocchio/default.nix
index ad3e3ba1299c..af7fff14e8f3 100644
--- a/nixpkgs/pkgs/development/libraries/pinocchio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pinocchio/default.nix
@@ -4,21 +4,23 @@
 , cmake
 , boost
 , eigen
+, collisionSupport ? !stdenv.isDarwin
+, hpp-fcl
 , urdfdom
 , pythonSupport ? false
 , python3Packages
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "pinocchio";
-  version = "2.6.19";
+  version = "2.6.20";
 
   src = fetchFromGitHub {
     owner = "stack-of-tasks";
-    repo = pname;
-    rev = "v${version}";
+    repo = finalAttrs.pname;
+    rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-P7jSAQ6LYcboJHqtpneT4W8Pu5G3fd3/a8Gju9im1e8=";
+    hash = "sha256-Pu/trCpqdue7sQKDbLhyxTfgj/+xRiVcG7Luz6ZQXtM=";
   };
 
   # error: use of undeclared identifier '__sincos'
@@ -38,20 +40,37 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals (!pythonSupport) [
     boost
     eigen
+  ] ++ lib.optionals (!pythonSupport && collisionSupport) [
+    hpp-fcl
   ] ++ lib.optionals pythonSupport [
     python3Packages.boost
     python3Packages.eigenpy
+  ] ++ lib.optionals (pythonSupport && collisionSupport) [
+    python3Packages.hpp-fcl
   ];
 
-  cmakeFlags = lib.optionals (!pythonSupport) [
+  cmakeFlags = lib.optionals collisionSupport [
+    "-DBUILD_WITH_COLLISION_SUPPORT=ON"
+  ] ++ lib.optionals pythonSupport [
+    "-DBUILD_WITH_LIBPYTHON=ON"
+  ] ++ lib.optionals (pythonSupport && stdenv.isDarwin) [
+    # AssertionError: '.' != '/tmp/nix-build-pinocchio-2.6.20.drv/sou[84 chars].dae'
+    "-DCMAKE_CTEST_ARGUMENTS='--exclude-regex;test-py-bindings_geometry_model_urdf'"
+  ] ++ lib.optionals (!pythonSupport) [
     "-DBUILD_PYTHON_INTERFACE=OFF"
   ];
 
+  doCheck = true;
+
+  pythonImportsCheck = lib.optionals (!pythonSupport) [
+    "pinocchio"
+  ];
+
   meta = with lib; {
     description = "A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives";
     homepage = "https://github.com/stack-of-tasks/pinocchio";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ wegank ];
+    maintainers = with maintainers; [ nim65s wegank ];
     platforms = platforms.unix;
   };
-}
+})