FindBullet.cmake 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. # - Try to find the Bullet physics engine
  2. #
  3. # This module defines the following variables
  4. #
  5. # BULLET_FOUND - Was bullet found
  6. # BULLET_INCLUDE_DIRS - the Bullet include directories
  7. # BULLET_LIBRARIES - Link to this, by default it includes
  8. # all bullet components (Dynamics,
  9. # Collision, LinearMath, & SoftBody)
  10. #
  11. # This module accepts the following variables
  12. #
  13. # BULLET_ROOT - Can be set to bullet install path or Windows build path
  14. #
  15. #=============================================================================
  16. # Copyright 2009 Kitware, Inc.
  17. # Copyright 2009 Philip Lowman <[email protected]>
  18. #
  19. # Distributed under the OSI-approved BSD License (the "License");
  20. # see accompanying file Copyright.txt for details.
  21. #
  22. # This software is distributed WITHOUT ANY WARRANTY; without even the
  23. # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  24. # See the License for more information.
  25. #=============================================================================
  26. # (To distribute this file outside of CMake, substitute the full
  27. # License text for the above reference.)
  28. macro(_FIND_BULLET_LIBRARY _var)
  29. find_library(${_var}
  30. NAMES
  31. ${ARGN}
  32. HINTS
  33. ${BULLET_ROOT}
  34. ${BULLET_ROOT}/lib/Release
  35. ${BULLET_ROOT}/lib/Debug
  36. ${BULLET_ROOT}/out/release8/libs
  37. ${BULLET_ROOT}/out/debug8/libs
  38. PATH_SUFFIXES lib
  39. )
  40. mark_as_advanced(${_var})
  41. endmacro()
  42. macro(_BULLET_APPEND_LIBRARIES _list _release)
  43. set(_debug ${_release}_DEBUG)
  44. if(${_debug})
  45. set(${_list} ${${_list}} optimized ${${_release}} debug ${${_debug}})
  46. else()
  47. set(${_list} ${${_list}} ${${_release}})
  48. endif()
  49. endmacro()
  50. find_path(BULLET_INCLUDE_DIR NAMES btBulletCollisionCommon.h
  51. HINTS
  52. ${BULLET_ROOT}/include
  53. ${BULLET_ROOT}/src
  54. PATH_SUFFIXES bullet
  55. )
  56. # Find the libraries
  57. _FIND_BULLET_LIBRARY(BULLET_DYNAMICS_LIBRARY BulletDynamics)
  58. _FIND_BULLET_LIBRARY(BULLET_DYNAMICS_LIBRARY_DEBUG BulletDynamics_Debug BulletDynamics_d)
  59. _FIND_BULLET_LIBRARY(BULLET_COLLISION_LIBRARY BulletCollision)
  60. _FIND_BULLET_LIBRARY(BULLET_COLLISION_LIBRARY_DEBUG BulletCollision_Debug BulletCollision_d)
  61. _FIND_BULLET_LIBRARY(BULLET_MATH_LIBRARY BulletMath LinearMath)
  62. _FIND_BULLET_LIBRARY(BULLET_MATH_LIBRARY_DEBUG BulletMath_Debug BulletMath_d LinearMath_Debug LinearMath_d)
  63. _FIND_BULLET_LIBRARY(BULLET_SOFTBODY_LIBRARY BulletSoftBody)
  64. _FIND_BULLET_LIBRARY(BULLET_SOFTBODY_LIBRARY_DEBUG BulletSoftBody_Debug BulletSoftBody_d)
  65. # handle the QUIETLY and REQUIRED arguments and set BULLET_FOUND to TRUE if
  66. # all listed variables are TRUE
  67. include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
  68. FIND_PACKAGE_HANDLE_STANDARD_ARGS(Bullet DEFAULT_MSG
  69. BULLET_DYNAMICS_LIBRARY BULLET_COLLISION_LIBRARY BULLET_MATH_LIBRARY
  70. BULLET_SOFTBODY_LIBRARY BULLET_INCLUDE_DIR)
  71. set(BULLET_INCLUDE_DIRS ${BULLET_INCLUDE_DIR})
  72. if(BULLET_FOUND)
  73. _BULLET_APPEND_LIBRARIES(BULLET_LIBRARIES BULLET_DYNAMICS_LIBRARY)
  74. _BULLET_APPEND_LIBRARIES(BULLET_LIBRARIES BULLET_COLLISION_LIBRARY)
  75. _BULLET_APPEND_LIBRARIES(BULLET_LIBRARIES BULLET_MATH_LIBRARY)
  76. _BULLET_APPEND_LIBRARIES(BULLET_LIBRARIES BULLET_SOFTBODY_LIBRARY)
  77. endif()