include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/CPM.cmake") CPMAddPackage( NAME "ode" GITHUB_REPOSITORY "odedevs/ode" GIT_TAG "0.16.6" DOWNLOAD_ONLY ON ) set(ODE_BASE "${ode_SOURCE_DIR}") set(ODE_TRIMESH "OPCODE") if(ODE_TRIMESH STREQUAL "OPCODE") set(ODE_TRIMESH_SRC ${ODE_BASE}/OPCODE/*.cpp ${ODE_BASE}/Ice/*.cpp) else() set(ODE_TRIMESH_SRC ${ODE_BASE}/GIMPACT/src/*.cpp) endif() file(GLOB ODE_SRC ${ODE_BASE}/ode/src/*.c ${ODE_BASE}/ode/src/*.cpp ${ODE_BASE}/ode/src/joints/*.cpp ${ODE_BASE}/ou/src/ou/*.cpp ${ODE_TRIMESH_SRC} ${ODE_BASE}/libccd/src/*.c ) add_library(ode STATIC ${ODE_SRC}) target_include_directories(ode PUBLIC ${ODE_BASE}/include ${CMAKE_CURRENT_BINARY_DIR} ) target_include_directories(ode PRIVATE ${ODE_BASE}/ode/src ${ODE_BASE}/ode/src/joints ${ODE_BASE}/OPCODE ${ODE_BASE}/ou/include ${ODE_BASE}/GIMPACT/include ${ODE_BASE}/libccd/src/custom ${ODE_BASE}/libccd/src ) list(REMOVE_ITEM ODE_SRC ${ODE_BASE}/ode/src/collision_trimesh_trimesh_old.cpp) list(REMOVE_ITEM ODE_SRC ${ODE_BASE}/ode/src/collision_trimesh_opcode.cpp) list(REMOVE_ITEM ODE_SRC ${ODE_BASE}/ode/src/collision_trimesh_disabled.cpp) target_compile_definitions(ode PRIVATE _OU_NAMESPACE=odeou _OU_FEATURE_SET=_OU_FEATURE_SET_TLS dLIBCCD_ENABLED dLIBCCD_INTERNAL dLIBCCD_BOX_CYL dLIBCCD_CYL_CYL dLIBCCD_CAP_CYL dLIBCCD_CONVEX_BOX dLIBCCD_CONVEX_CAP dLIBCCD_CONVEX_CYL dLIBCCD_CONVEX_SPHERE dLIBCCD_CONVEX_CONVEX ) target_link_libraries(ode PUBLIC stdc++) set(ODE_PRECISION "dDOUBLE") set(CCD_PRECISION "CCD_DOUBLE") set(ODE_VERSION "Custom-ODE") configure_file(${ODE_BASE}/include/ode/version.h.in ode/version.h) configure_file(${ODE_BASE}/include/ode/precision.h.in ode/precision.h) configure_file(${ODE_BASE}/libccd/src/ccd/precision.h.in ccd/precision.h) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ode/config.h.in config.h)