diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index ff3a29d59ebe..8da43d9a0f25 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -11461,6 +11461,16 @@ githubId = 26231126; name = "Nils ANDRÉ-CHANG"; }; + nim65s = { + email = "guilhem.saurel@laas.fr"; + matrix = "@gsaurel:laas.fr"; + github = "nim65s"; + githubId = 131929; + name = "Guilhem Saurel"; + keys = [{ + fingerprint = "9B1A 7906 5D2F 2B80 6C8A 5A1C 7D2A CDAF 4653 CF28"; + }]; + }; ninjatrappeur = { email = "felix@alternativebit.fr"; matrix = "@ninjatrappeur:matrix.org"; 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 a7ecd5ab4d36..c49cfbc102bc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21127,6 +21127,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 { };