@@ -37,7 +37,7 @@ else() # LINUX assumed
37
37
endif ()
38
38
endif ()
39
39
40
- find_package (DART 6.3.0 REQUIRED
40
+ find_package (DART 6.6.1 REQUIRED
41
41
COMPONENTS
42
42
collision-bullet
43
43
# collision-ode
@@ -48,6 +48,25 @@ find_package(DART 6.3.0 REQUIRED
48
48
CONFIG
49
49
)
50
50
51
+ # Check if DART is built with octomap so that it supports VoxelGridShape
52
+ include (CheckCXXSourceCompiles)
53
+ set (CMAKE_REQUIRED_DEFINITIONS "" )
54
+ set (CMAKE_REQUIRED_FLAGS "-std=c++11" )
55
+ set (CMAKE_REQUIRED_INCLUDES ${DART_INCLUDE_DIRS} )
56
+ set (CMAKE_REQUIRED_LIBRARIES ${DART_LIBRARIES} )
57
+ check_cxx_source_compiles(
58
+ "
59
+ #include <dart/dart.hpp>
60
+ int main()
61
+ {
62
+ auto voxel = new dart::dynamics::VoxelGridShape();
63
+ delete voxel;
64
+ return 0;
65
+ }
66
+ "
67
+ DART_HAS_VOXELGRIDSHAPE
68
+ )
69
+
51
70
find_package (PythonLibs ${DARTPY_PYTHON_VERSION} REQUIRED)
52
71
find_package (chimera QUIET )
53
72
@@ -91,10 +110,15 @@ include_directories(
91
110
)
92
111
93
112
# If chimera is available on this system, create a target to build bindings.
113
+ if (DART_HAS_VOXELGRIDSHAPE)
114
+ set (CHIMERA_CONFIG "${CMAKE_CURRENT_SOURCE_DIR} /chimera/chimera.yml" )
115
+ else ()
116
+ set (CHIMERA_CONFIG "${CMAKE_CURRENT_SOURCE_DIR} /chimera/chimera_without_voxel.yml" )
117
+ endif ()
94
118
if (chimera_FOUND)
95
119
add_chimera_binding(TARGET "${PROJECT_NAME} _CHIMERA"
96
120
MODULE "${PROJECT_NAME} "
97
- CONFIGURATION "${CMAKE_CURRENT_SOURCE_DIR} /chimera/chimera.yml "
121
+ CONFIGURATION "${CHIMERA_CONFIG} "
98
122
SOURCES "${CMAKE_CURRENT_SOURCE_DIR} /chimera/chimera.cpp"
99
123
DESTINATION "${CMAKE_CURRENT_SOURCE_DIR} /src/generated"
100
124
DEBUG EXCLUDE_FROM_ALL
0 commit comments