FindBullet.cmake 3.3 KB

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