cmake_minimum_required(VERSION 3.7 FATAL_ERROR)
project(ode CXX)

add_library(ode STATIC
  include/ode/collision.h
  include/ode/collision_space.h
  include/ode/collision_trimesh.h
  include/ode/common.h
  include/ode/compatibility.h
  include/ode/contact.h
  include/ode/error.h
  include/ode/export-dif.h
  include/ode/mass.h
  include/ode/matrix.h
  include/ode/memory.h
  include/ode/misc.h
  include/ode/objects.h
  include/ode/odeconfig.h
  include/ode/odecpp_collision.h
  include/ode/odecpp.h
  include/ode/ode.h
  include/ode/odeinit.h
  include/ode/odemath.h
  include/ode/odemath_legacy.h
  include/ode/rotation.h
  include/ode/timer.h

  src/array.cpp
  src/array.h
  src/box.cpp
  src/capsule.cpp
  src/collision_cylinder_box.cpp
  src/collision_cylinder_plane.cpp
  src/collision_cylinder_sphere.cpp
  src/collision_cylinder_trimesh.cpp
  src/collision_kernel.cpp
  src/collision_kernel.h
  src/collision_libccd.cpp
  src/collision_libccd.h
  src/collision_quadtreespace.cpp
  src/collision_sapspace.cpp
  src/collision_space.cpp
  src/collision_space_internal.h
  src/collision_std.h
  src/collision_transform.cpp
  src/collision_transform.h
  src/collision_trimesh_box.cpp
  src/collision_trimesh_ccylinder.cpp
  src/collision_trimesh_colliders.h
  src/collision_trimesh_disabled.cpp
  src/collision_trimesh_distance.cpp
  src/collision_trimesh_gimpact.cpp
  src/collision_trimesh_internal.h
  src/collision_trimesh_opcode.cpp
  src/collision_trimesh_plane.cpp
  src/collision_trimesh_ray.cpp
  src/collision_trimesh_sphere.cpp
  src/collision_trimesh_trimesh.cpp
  src/collision_trimesh_trimesh_new.cpp
  src/collision_util.cpp
  src/collision_util.h
  src/config.h
  src/config.h.origin
  src/convex.cpp
  src/cylinder.cpp
  src/error.cpp
  src/export-dif.cpp
  src/fastdot.c
  src/fastldlt.c
  src/fastlsolve.c
  src/fastltsolve.c
  src/heightfield.cpp
  src/heightfield.h

  src/joints/amotor.cpp
  src/joints/amotor.h
  src/joints/ball.cpp
  src/joints/ball.h
  src/joints/contact.cpp
  src/joints/contact.h
  src/joints/fixed.cpp
  src/joints/fixed.h
  src/joints/hinge2.cpp
  src/joints/hinge2.h
  src/joints/hinge.cpp
  src/joints/hinge.h
  src/joints/joint.cpp
  src/joints/joint.h
  src/joints/joint_internal.h
  src/joints/joints.h
  src/joints/lmotor.cpp
  src/joints/lmotor.h
  src/joints/null.cpp
  src/joints/null.h
  src/joints/piston.cpp
  src/joints/piston.h
  src/joints/plane2d.cpp
  src/joints/plane2d.h
  src/joints/pr.cpp
  src/joints/pr.h
  src/joints/pu.cpp
  src/joints/pu.h
  src/joints/slider.cpp
  src/joints/slider.h
  src/joints/universal.cpp
  src/joints/universal.h

  src/lcp.cpp
  src/lcp.h
  src/mass.cpp
  src/mat.cpp
  src/mat.h
  src/matrix.cpp
  src/memory.cpp
  src/misc.cpp
  src/nextafterf.c
  src/objects.h
  src/obstack.cpp
  src/obstack.h
  src/ode.cpp
  src/odeinit.cpp
  src/odemath.cpp
  src/odeou.cpp
  src/odeou.h
  src/odetls.cpp
  src/odetls.h
  src/plane.cpp
  src/quickstep.cpp
  src/quickstep.h
  src/ray.cpp
  src/rotation.cpp
  src/sphere.cpp
  src/step.cpp
  src/step.h
  src/timer.cpp
  src/util.cpp
  src/util.h
)
target_include_directories(ode
  PUBLIC
  "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
)
target_compile_definitions(ode PUBLIC dDOUBLE)

target_link_libraries(ode PUBLIC libccd)
