From f0f7bca5db76c80da1072ddc602ff6ce0d3f55be Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Fri, 6 Feb 2015 16:35:25 -0800 Subject: [PATCH] don't force requirement of BOTH debug/release Bullet --- BUILD_WIN.md | 2 +- cmake/modules/FindBullet.cmake | 64 ++++++++++++++++------------------ 2 files changed, 32 insertions(+), 34 deletions(-) diff --git a/BUILD_WIN.md b/BUILD_WIN.md index a0f919b407..8022fae5b8 100644 --- a/BUILD_WIN.md +++ b/BUILD_WIN.md @@ -167,7 +167,7 @@ cmake .. -G "Visual Studio 12" msbuild BULLET_PHYSICS.sln /p:Configuration=Debug ``` -This will create Debug libraries in cmakebuild\lib\Debug you can replace Debug with Release in the msbuild command and that will generate Release libraries in cmakebuild\lib\Release. +This will create Debug libraries in cmakebuild\lib\Debug. You can replace Debug with Release in the msbuild command and that will generate Release libraries in cmakebuild\lib\Release. You now have Bullet libraries compiled, now you need to put them in the right place for hifi to find them: diff --git a/cmake/modules/FindBullet.cmake b/cmake/modules/FindBullet.cmake index 65d064e91b..8a7aa05606 100644 --- a/cmake/modules/FindBullet.cmake +++ b/cmake/modules/FindBullet.cmake @@ -35,27 +35,36 @@ include("${MACRO_DIR}/HifiLibrarySearchHints.cmake") hifi_library_search_hints("bullet") macro(_FIND_BULLET_LIBRARY _var) - find_library(${_var} - NAMES - ${ARGN} + set(_${_var}_NAMES ${ARGN}) + find_library(${_var}_LIBRARY_RELEASE + NAMES ${_${_var}_NAMES} HINTS ${BULLET_SEARCH_DIRS} $ENV{BULLET_ROOT_DIR} ${BULLET_ROOT} - ${BULLET_ROOT}/out/release8/libs - ${BULLET_ROOT}/out/debug8/libs - PATH_SUFFIXES lib lib/Release lib/Debug + PATH_SUFFIXES lib lib/Release out/release8/libs ) - 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() + + foreach(_NAME IN LISTS _${_var}_NAMES) + list(APPEND _${_var}_DEBUG_NAMES "${_NAME}_Debug") + list(APPEND _${_var}_DEBUG_NAMES "${_NAME}_d") + endforeach() + + find_library(${_var}_LIBRARY_DEBUG + NAMES ${_${_var}_DEBUG_NAMES} + HINTS + ${BULLET_SEARCH_DIRS} + $ENV{BULLET_ROOT_DIR} + ${BULLET_ROOT} + PATH_SUFFIXES lib lib/Debug out/debug8/libs + ) + + select_library_configurations(${_var}) + + message(STATUS ${${_var}_LIBRARY}) + + mark_as_advanced(${_var}_LIBRARY) + mark_as_advanced(${_var}_LIBRARY) endmacro() find_path(BULLET_INCLUDE_DIR NAMES btBulletCollisionCommon.h @@ -69,25 +78,14 @@ find_path(BULLET_INCLUDE_DIR NAMES btBulletCollisionCommon.h # 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) +_FIND_BULLET_LIBRARY(BULLET_DYNAMICS BulletDynamics) +_FIND_BULLET_LIBRARY(BULLET_COLLISION BulletCollision) +_FIND_BULLET_LIBRARY(BULLET_MATH BulletMath LinearMath) +_FIND_BULLET_LIBRARY(BULLET_SOFTBODY BulletSoftBody) +set(BULLET_INCLUDE_DIRS ${BULLET_INCLUDE_DIR}) find_package_handle_standard_args(Bullet "Could NOT find Bullet, try to set the path to Bullet root folder in the system variable BULLET_ROOT_DIR" BULLET_DYNAMICS_LIBRARY BULLET_COLLISION_LIBRARY BULLET_MATH_LIBRARY - BULLET_INCLUDE_DIR + BULLET_INCLUDE_DIRS ) - -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()