summaryrefslogtreecommitdiffstats
path: root/Modules/FindBullet.cmake
diff options
context:
space:
mode:
authorPhilip Lowman <philip@yhbt.com>2009-08-17 03:07:15 (GMT)
committerPhilip Lowman <philip@yhbt.com>2009-08-17 03:07:15 (GMT)
commit232b14f48890d1453bab867579c7db5f6016611e (patch)
treefe0b50fb52b1f88fdd556fc743924f8fc3983450 /Modules/FindBullet.cmake
parentc577608958f32fdf6e046be95d5ab3d92b49d815 (diff)
downloadCMake-232b14f48890d1453bab867579c7db5f6016611e.zip
CMake-232b14f48890d1453bab867579c7db5f6016611e.tar.gz
CMake-232b14f48890d1453bab867579c7db5f6016611e.tar.bz2
Find module for the Bullet physics engine
Diffstat (limited to 'Modules/FindBullet.cmake')
-rw-r--r--Modules/FindBullet.cmake75
1 files changed, 75 insertions, 0 deletions
diff --git a/Modules/FindBullet.cmake b/Modules/FindBullet.cmake
new file mode 100644
index 0000000..118efb6
--- /dev/null
+++ b/Modules/FindBullet.cmake
@@ -0,0 +1,75 @@
+# - 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
+#
+
+# Copyright (c) 2009, Philip Lowman <philip@yhbt.com>
+#
+# Redistribution AND use is allowed according to the terms of the New
+# BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+macro(_FIND_BULLET_LIBRARY _var)
+ find_library(${_var}
+ NAMES
+ ${ARGN}
+ PATHS
+ ${BULLET_ROOT}
+ ${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
+ PATHS
+ ${BULLET_ROOT}/include
+ ${BULLET_ROOT}/src
+)
+
+# Find the libraries
+
+_FIND_BULLET_LIBRARY(BULLET_DYNAMICS_LIBRARY BulletDynamics)
+_FIND_BULLET_LIBRARY(BULLET_DYNAMICS_LIBRARY_DEBUG BulletDynamics_d)
+_FIND_BULLET_LIBRARY(BULLET_COLLISION_LIBRARY BulletCollision)
+_FIND_BULLET_LIBRARY(BULLET_COLLISION_LIBRARY_DEBUG BulletCollision_d)
+_FIND_BULLET_LIBRARY(BULLET_MATH_LIBRARY LinearMath BulletMath)
+_FIND_BULLET_LIBRARY(BULLET_MATH_LIBRARY_DEBUG LinearMath_d BulletMath_d)
+_FIND_BULLET_LIBRARY(BULLET_SOFTBODY_LIBRARY BulletSoftBody)
+_FIND_BULLET_LIBRARY(BULLET_SOFTBODY_LIBRARY_DEBUG BulletSoftBody_d)
+
+
+# handle the QUIETLY and REQUIRED arguments and set BULLET_FOUND to TRUE if
+# all listed variables are TRUE
+include(FindPackageHandleStandardArgs)
+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()