| # Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
| # file Copyright.txt or https://cmake.org/licensing for details. |
| |
| #[=======================================================================[.rst: |
| FindBullet |
| ---------- |
| |
| Try to find the Bullet physics engine |
| |
| |
| |
| :: |
| |
| This module defines the following variables |
| |
| |
| |
| :: |
| |
| BULLET_FOUND - Was bullet found |
| BULLET_INCLUDE_DIRS - the Bullet include directories |
| BULLET_LIBRARIES - Link to this, by default it includes |
| all bullet components (Dynamics, |
| Collision, LinearMath, & SoftBody) |
| |
| |
| |
| :: |
| |
| This module accepts the following variables |
| |
| |
| |
| :: |
| |
| BULLET_ROOT - Can be set to bullet install path or Windows build path |
| #]=======================================================================] |
| |
| macro(_FIND_BULLET_LIBRARY _var) |
| find_library(${_var} |
| NAMES |
| ${ARGN} |
| HINTS |
| ${BULLET_ROOT} |
| ${BULLET_ROOT}/lib/Release |
| ${BULLET_ROOT}/lib/Debug |
| ${BULLET_ROOT}/out/release8/libs |
| ${BULLET_ROOT}/out/debug8/libs |
| PATH_SUFFIXES lib |
| ) |
| mark_as_advanced(${_var}) |
| endmacro() |
| |
| macro(_BULLET_APPEND_LIBRARIES _list _release) |
| set(_debug ${_release}_DEBUG) |
| if(${_debug}) |
| set(${_list} ${${_list}} optimized ${${_release}} debug ${${_debug}}) |
| else() |
| set(${_list} ${${_list}} ${${_release}}) |
| endif() |
| endmacro() |
| |
| find_path(BULLET_INCLUDE_DIR NAMES btBulletCollisionCommon.h |
| HINTS |
| ${BULLET_ROOT}/include |
| ${BULLET_ROOT}/src |
| PATH_SUFFIXES bullet |
| ) |
| |
| # Find the libraries |
| |
| _FIND_BULLET_LIBRARY(BULLET_DYNAMICS_LIBRARY BulletDynamics) |
| _FIND_BULLET_LIBRARY(BULLET_DYNAMICS_LIBRARY_DEBUG BulletDynamics_Debug BulletDynamics_d) |
| _FIND_BULLET_LIBRARY(BULLET_COLLISION_LIBRARY BulletCollision) |
| _FIND_BULLET_LIBRARY(BULLET_COLLISION_LIBRARY_DEBUG BulletCollision_Debug BulletCollision_d) |
| _FIND_BULLET_LIBRARY(BULLET_MATH_LIBRARY BulletMath LinearMath) |
| _FIND_BULLET_LIBRARY(BULLET_MATH_LIBRARY_DEBUG BulletMath_Debug BulletMath_d LinearMath_Debug LinearMath_d) |
| _FIND_BULLET_LIBRARY(BULLET_SOFTBODY_LIBRARY BulletSoftBody) |
| _FIND_BULLET_LIBRARY(BULLET_SOFTBODY_LIBRARY_DEBUG BulletSoftBody_Debug BulletSoftBody_d) |
| |
| |
| include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) |
| FIND_PACKAGE_HANDLE_STANDARD_ARGS(Bullet DEFAULT_MSG |
| BULLET_DYNAMICS_LIBRARY BULLET_COLLISION_LIBRARY BULLET_MATH_LIBRARY |
| BULLET_SOFTBODY_LIBRARY BULLET_INCLUDE_DIR) |
| |
| set(BULLET_INCLUDE_DIRS ${BULLET_INCLUDE_DIR}) |
| if(BULLET_FOUND) |
| _BULLET_APPEND_LIBRARIES(BULLET_LIBRARIES BULLET_DYNAMICS_LIBRARY) |
| _BULLET_APPEND_LIBRARIES(BULLET_LIBRARIES BULLET_COLLISION_LIBRARY) |
| _BULLET_APPEND_LIBRARIES(BULLET_LIBRARIES BULLET_MATH_LIBRARY) |
| _BULLET_APPEND_LIBRARIES(BULLET_LIBRARIES BULLET_SOFTBODY_LIBRARY) |
| endif() |