70 lines
1.8 KiB
CMake
70 lines
1.8 KiB
CMake
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)
|