From 2ad8ac866df3c82fa24e88e1430d846075ada5ce Mon Sep 17 00:00:00 2001
From: Stephen Birarda <commit@birarda.com>
Date: Mon, 23 Feb 2015 12:50:53 -0800
Subject: [PATCH] make correct version of bullet for windows

---
 CMakeLists.txt                                |  6 ++++
 cmake/android/QtCreateAPK.cmake               |  2 +-
 cmake/externals/bullet/CMakeLists.txt         | 34 ++++++++++++-------
 .../CopyDllsBesideWindowsExecutable.cmake     |  2 +-
 interface/CMakeLists.txt                      |  2 +-
 5 files changed, 30 insertions(+), 16 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a79476f17f..25c18fc058 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -106,6 +106,12 @@ set(HIFI_LIBRARY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries")
 # setup for find modules
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/")
 
+if (CMAKE_BUILD_TYPE)
+  string(TOUPPER ${CMAKE_BUILD_TYPE} UPPER_CMAKE_BUILD_TYPE)
+else ()
+  set(UPPER_CMAKE_BUILD_TYPE DEBUG)
+endif ()
+
 set(HIFI_CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
 set(MACRO_DIR "${HIFI_CMAKE_DIR}/macros")
 set(EXTERNAL_PROJECT_DIR "${HIFI_CMAKE_DIR}/externals")
diff --git a/cmake/android/QtCreateAPK.cmake b/cmake/android/QtCreateAPK.cmake
index c3a4a48ac7..30ee2f57bd 100644
--- a/cmake/android/QtCreateAPK.cmake
+++ b/cmake/android/QtCreateAPK.cmake
@@ -26,7 +26,7 @@ macro(qt_create_apk)
 		set(ANDROID_APK_THEME "")
 	endif()
   
-	if (CMAKE_BUILD_TYPE MATCHES RELEASE)
+	if (UPPER_CMAKE_BUILD_TYPE MATCHES RELEASE)
 		set(ANDROID_APK_DEBUGGABLE "false")
 		set(ANDROID_APK_RELEASE_LOCAL ${ANDROID_APK_RELEASE})
 	else ()
diff --git a/cmake/externals/bullet/CMakeLists.txt b/cmake/externals/bullet/CMakeLists.txt
index 9d8da889c6..d08ceb11b9 100644
--- a/cmake/externals/bullet/CMakeLists.txt
+++ b/cmake/externals/bullet/CMakeLists.txt
@@ -15,7 +15,7 @@ endif ()
 include(ExternalProject)
 
 if (WIN32)
-  if (CMAKE_BUILD_TYPE STREQUAL "Debug")
+  if (UPPER_CMAKE_BUILD_TYPE MATCHES DEBUG)
     set(MSBUILD_CONFIGURATION Debug)
   else ()
     set(MSBUILD_CONFIGURATION Release)
@@ -27,9 +27,8 @@ if (WIN32)
     ${EXTERNAL_NAME}
     URL https://bullet.googlecode.com/files/bullet-2.82-r2704.zip
     URL_MD5 f5e8914fc9064ad32e0d62d19d33d977
-    CMAKE_ARGS ${PLATFORM_CMAKE_ARGS} -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DBUILD_EXTRAS=0 -DINSTALL_LIBS=1 -DBUILD_DEMOS=0 -DUSE_GLUT=0
-    BUILD_COMMAND ${MSBUILD_COMMAND} ALL_BUILD.vcxproj /p:Configuration=Release
-    INSTALL_COMMAND ${MSBUILD_COMMAND} INSTALL.vcxproj /p:Configuration=Release
+    CMAKE_ARGS ${PLATFORM_CMAKE_ARGS} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DBUILD_EXTRAS=0 -DINSTALL_LIBS=1 -DBUILD_DEMOS=0 -DUSE_GLUT=0
+    BUILD_COMMAND ${MSBUILD_COMMAND} ALL_BUILD.vcxproj /p:Configuration=${MSBUILD_CONFIGURATION}
     LOG_DOWNLOAD 1
     LOG_CONFIGURE 1
     LOG_BUILD 1
@@ -67,19 +66,28 @@ elseif (WIN32)
 endif ()
 
 if (DEFINED BULLET_LIB_EXT)
-  set(${EXTERNAL_NAME_UPPER}_DYNAMICS_LIBRARY_RELEASE ${BULLET_LIB_DIR}/${LIB_PREFIX}BulletDynamics.${BULLET_LIB_EXT} CACHE FILEPATH "Bullet dynamics release library location")
-  set(${EXTERNAL_NAME_UPPER}_DYNAMICS_LIBRARY_DEBUG "" CACHE FILEPATH "Bullet dynamics debug library location")
+  if (NOT WIN32 OR UPPER_CMAKE_BUILD_TYPE MATCHES RELEASE)
+    set(_PRESENT_LIB_TYPE RELEASE)
+    set(_MISSING_LIB_TYPE DEBUG)
+  else ()
+    set(_PRESENT_LIB_TYPE DEBUG)
+    set(_MISSING_LIB_TYPE RELEASE)
+    set(_LIB_NAME_SUFFIX _Debug)
+  endif ()
+  
+  set(${EXTERNAL_NAME_UPPER}_DYNAMICS_LIBRARY_${_PRESENT_LIB_TYPE} ${BULLET_LIB_DIR}/${LIB_PREFIX}BulletDynamics${_LIB_NAME_SUFFIX}.${BULLET_LIB_EXT} CACHE FILEPATH "Bullet dynamics ${_PRESENT_LIB_TYPE} library location")
+  set(${EXTERNAL_NAME_UPPER}_DYNAMICS_LIBRARY_${_MISSING_LIB_TYPE} "" CACHE FILEPATH "Bullet dynamics ${_MISSING_LIB_TYPE} library location")
 
-  set(${EXTERNAL_NAME_UPPER}_COLLISION_LIBRARY_RELEASE ${BULLET_LIB_DIR}/${LIB_PREFIX}BulletCollision.${BULLET_LIB_EXT} CACHE FILEPATH "Bullet collision release library location")
-  set(${EXTERNAL_NAME_UPPER}_COLLISION_LIBRARY_DEBUG "" CACHE FILEPATH "Bullet collision debug library location")
+  set(${EXTERNAL_NAME_UPPER}_COLLISION_LIBRARY_${_PRESENT_LIB_TYPE} ${BULLET_LIB_DIR}/${LIB_PREFIX}BulletCollision${_LIB_NAME_SUFFIX}.${BULLET_LIB_EXT} CACHE FILEPATH "Bullet collision ${_PRESENT_LIB_TYPE} library location")
+  set(${EXTERNAL_NAME_UPPER}_COLLISION_LIBRARY_${_MISSING_LIB_TYPE} "" CACHE FILEPATH "Bullet collision ${_MISSING_LIB_TYPE} library location")
 
-  set(${EXTERNAL_NAME_UPPER}_MATH_LIBRARY_RELEASE ${BULLET_LIB_DIR}/${LIB_PREFIX}LinearMath.${BULLET_LIB_EXT} CACHE FILEPATH "Bullet math release library location")
-  set(${EXTERNAL_NAME_UPPER}_MATH_LIBRARY_DEBUG "" CACHE FILEPATH "Bullet math debug library location")
+  set(${EXTERNAL_NAME_UPPER}_MATH_LIBRARY_${_PRESENT_LIB_TYPE} ${BULLET_LIB_DIR}/${LIB_PREFIX}LinearMath${_LIB_NAME_SUFFIX}.${BULLET_LIB_EXT} CACHE FILEPATH "Bullet math ${_PRESENT_LIB_TYPE} library location")
+  set(${EXTERNAL_NAME_UPPER}_MATH_LIBRARY_${_MISSING_LIB_TYPE} "" CACHE FILEPATH "Bullet math ${_MISSING_LIB_TYPE} library location")
 
-  set(${EXTERNAL_NAME_UPPER}_SOFTBODY_LIBRARY_RELEASE ${BULLET_LIB_DIR}/${LIB_PREFIX}BulletSoftBody.${BULLET_LIB_EXT} CACHE FILEPATH "Bullet softbody release library location")
-  set(${EXTERNAL_NAME_UPPER}_SOFTBODY_LIBRARY_DEBUG "" CACHE FILEPATH "Bullet softbody debug library location")
+  set(${EXTERNAL_NAME_UPPER}_SOFTBODY_LIBRARY_${_PRESENT_LIB_TYPE} ${BULLET_LIB_DIR}/${LIB_PREFIX}BulletSoftBody${_LIB_NAME_SUFFIX}.${BULLET_LIB_EXT} CACHE FILEPATH "Bullet softbody ${_PRESENT_LIB_TYPE} library location")
+  set(${EXTERNAL_NAME_UPPER}_SOFTBODY_LIBRARY_${_MISSING_LIB_TYPE} "" CACHE FILEPATH "Bullet softbody ${_MISSING_LIB_TYPE} library location")
 endif ()
 
-if (DEFINED ${EXTERNAL_NAME_UPPER}_DYNAMICS_LIBRARY_RELEASE)
+if (DEFINED ${EXTERNAL_NAME_UPPER}_DYNAMICS_LIBRARY_${_PRESENT_LIB_TYPE})
   set(${EXTERNAL_NAME_UPPER}_INCLUDE_DIR ${INSTALL_DIR}/include/bullet CACHE PATH "Path to bullet include directory")
 endif ()
\ No newline at end of file
diff --git a/cmake/macros/CopyDllsBesideWindowsExecutable.cmake b/cmake/macros/CopyDllsBesideWindowsExecutable.cmake
index 2498c0dcf3..0ec7b50fd8 100644
--- a/cmake/macros/CopyDllsBesideWindowsExecutable.cmake
+++ b/cmake/macros/CopyDllsBesideWindowsExecutable.cmake
@@ -10,7 +10,7 @@
 # 
 
 macro(COPY_DLLS_BESIDE_WINDOWS_EXECUTABLE)
-  if (WIN32 AND NOT CMAKE_BUILD_TYPE STREQUAL "Release")
+  if (WIN32 AND NOT UPPER_CMAKE_BUILD_TYPE MATCHES RELEASE)
     
     configure_file(
       ${HIFI_CMAKE_DIR}/templates/FixupBundlePostBuild.cmake.in  
diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt
index 37887f5e14..ee41648758 100644
--- a/interface/CMakeLists.txt
+++ b/interface/CMakeLists.txt
@@ -76,7 +76,7 @@ if (APPLE)
   set(MACOSX_BUNDLE_BUNDLE_NAME Interface)
   set(MACOSX_BUNDLE_GUI_IDENTIFIER io.highfidelity.Interface)
   
-  if (CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
+  if (UPPER_CMAKE_BUILD_TYPE MATCHES RELEASE OR UPPER_CMAKE_BUILD_TYPE MATCHES RELWITHDEBINFO)
     set(ICON_FILENAME "interface.icns")
   else ()
     set(ICON_FILENAME "interface-beta.icns")