1{ lib
2, stdenv
3, fetchFromGitHub
4, fetchpatch
5, cmake
6, boost
7, eigen
8, assimp
9, octomap
10, qhull
11, pythonSupport ? false
12, python3Packages
13}:
14
15stdenv.mkDerivation (finalAttrs: {
16 pname = "hpp-fcl";
17 version = "2.3.4";
18
19 src = fetchFromGitHub {
20 owner = "humanoid-path-planner";
21 repo = finalAttrs.pname;
22 rev = "v${finalAttrs.version}";
23 fetchSubmodules = true;
24 hash = "sha256-tX8AvlR/Az8fFs4ylqFijw3hXiNRoEWffmYbTcaqO90=";
25 };
26
27 strictDeps = true;
28
29 nativeBuildInputs = [
30 cmake
31 ];
32
33 propagatedBuildInputs = [
34 assimp
35 qhull
36 octomap
37 ] ++ lib.optionals (!pythonSupport) [
38 boost
39 eigen
40 ] ++ lib.optionals pythonSupport [
41 python3Packages.boost
42 python3Packages.eigenpy
43 ];
44
45 cmakeFlags = [
46 "-DHPP_FCL_HAS_QHULL=ON"
47 ] ++ lib.optionals (!pythonSupport) [
48 "-DBUILD_PYTHON_INTERFACE=OFF"
49 ];
50
51 doCheck = true;
52 pythonImportsCheck = lib.optionals (!pythonSupport) [
53 "hppfcl"
54 ];
55
56 meta = with lib; {
57 description = "An extension of the Flexible Collision Library";
58 homepage = "https://github.com/humanoid-path-planner/hpp-fcl";
59 license = licenses.bsd3;
60 maintainers = with maintainers; [ nim65s ];
61 platforms = platforms.unix;
62 };
63})