diff --git a/pkgs/development/libraries/hpp-fcl/default.nix b/pkgs/development/libraries/hpp-fcl/default.nix new file mode 100644 index 000000000000..20895529f2a4 --- /dev/null +++ b/pkgs/development/libraries/hpp-fcl/default.nix @@ -0,0 +1,72 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, cmake +, boost +, eigen +, assimp +, octomap +, qhull +, pythonSupport ? false +, python3Packages +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "hpp-fcl"; + version = "2.3.3"; + + src = fetchFromGitHub { + owner = "humanoid-path-planner"; + repo = finalAttrs.pname; + rev = "v${finalAttrs.version}"; + fetchSubmodules = true; + hash = "sha256-7MXQ5+S/lvaTBVGY2gTJ1nUegtf9cp7p0JLJ4oPJAUY="; + }; + + patches = [ + # Fix unittest where nix env set `boost::archive::tmpdir()` to `/build` and trigger a path concatenation bug. + (fetchpatch { + name = "tests-use-boost-filesystem.patch"; + url = "https://github.com/humanoid-path-planner/hpp-fcl/commit/7e8fde64a5d2c2412325f6cb5d78623bf2409176.patch"; + hash = "sha256-YjESkj8SqYiyrJuXIa5mSnHIph/D04J10poTDcYgs2c="; + }) + ]; + + strictDeps = true; + + nativeBuildInputs = [ + cmake + ]; + + propagatedBuildInputs = [ + assimp + qhull + octomap + ] ++ lib.optionals (!pythonSupport) [ + boost + eigen + ] ++ lib.optionals pythonSupport [ + python3Packages.boost + python3Packages.eigenpy + ]; + + cmakeFlags = [ + "-DHPP_FCL_HAS_QHULL=ON" + ] ++ lib.optionals (!pythonSupport) [ + "-DBUILD_PYTHON_INTERFACE=OFF" + ]; + + doCheck = true; + pythonImportsCheck = lib.optionals (!pythonSupport) [ + "hppfcl" + ]; + + meta = with lib; { + description = "An extension of the Flexible Collision Library"; + homepage = "https://github.com/humanoid-path-planner/hpp-fcl"; + license = licenses.bsd3; + maintainers = with maintainers; [ nim65s ]; + platforms = platforms.unix; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6db14e7aa9cb..6f4b9cd88352 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21123,6 +21123,8 @@ with pkgs; hound = callPackage ../development/tools/misc/hound { }; + hpp-fcl = callPackage ../development/libraries/hpp-fcl { }; + hpx = callPackage ../development/libraries/hpx { boost = boost17x; asio = asio.override { boost = boost17x; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 718d366e58a3..4cab148b9505 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4627,6 +4627,11 @@ self: super: with self; { hpccm = callPackage ../development/python-modules/hpccm { }; + hpp-fcl = toPythonModule (pkgs.hpp-fcl.override { + pythonSupport = true; + python3Packages = self; + }); + hs-dbus-signature = callPackage ../development/python-modules/hs-dbus-signature { }; hsaudiotag3k = callPackage ../development/python-modules/hsaudiotag3k { };