summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorSteve Streeting <steve@stevestreeting.com>2020-07-01 18:13:08 +0100
committerSteve Streeting <steve@stevestreeting.com>2020-07-01 18:13:08 +0100
commita877acd07f687aebd9e7eddcea0447882e04c79f (patch)
tree70528168b4500063db0b8294e8bd8a5b8a16908c /CMakeLists.txt
parentd8c7f97dbbdfc2b849bc0d9ec12eee4d26fe5dc9 (diff)
downloadbullet3-a877acd07f687aebd9e7eddcea0447882e04c79f.tar.gz
Add USE_MSVC_RELEASE_RUNTIME_ALWAYS to use Release CRT even in Debug builds
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt16
1 files changed, 16 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 00e7b1a10..e432f929b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -63,6 +63,7 @@ IF (CMAKE_SYSTEM_NAME STREQUAL WindowsPhone OR CMAKE_SYSTEM_NAME STREQUAL Window
ELSE ()
OPTION(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC Runtime Library DLL (/MD or /MDd)" OFF)
ENDIF (CMAKE_SYSTEM_NAME STREQUAL WindowsPhone OR CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
+OPTION(USE_MSVC_RELEASE_RUNTIME_ALWAYS "Use MSVC Release Runtime Library even in Debug" OFF)
#SET(CMAKE_EXE_LINKER_FLAGS_INIT "/STACK:10000000 /INCREMENTAL:NO")
#SET(CMAKE_EXE_LINKER_FLAGS "/STACK:10000000 /INCREMENTAL:NO")
@@ -105,6 +106,21 @@ IF(MSVC)
ENDFOREACH(flag_var)
ENDIF (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
+ IF (USE_MSVC_RELEASE_RUNTIME_ALWAYS)
+ FOREACH(flag_var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO )
+ IF(${flag_var} MATCHES "/MDd")
+ STRING(REGEX REPLACE "/MDd" "/MD" ${flag_var} "${${flag_var}}")
+ ENDIF(${flag_var} MATCHES "/MDd")
+ IF(${flag_var} MATCHES "/MTd")
+ STRING(REGEX REPLACE "/MTd" "/MT" ${flag_var} "${${flag_var}}")
+ ENDIF(${flag_var} MATCHES "/MTd")
+ # Need to remove _DEBUG too otherwise things like _ITERATOR_DEBUG_LEVEL mismatch
+ IF(${flag_var} MATCHES "-D_DEBUG")
+ STRING(REGEX REPLACE "-D_DEBUG" "" ${flag_var} "${${flag_var}}")
+ ENDIF(${flag_var} MATCHES "-D_DEBUG")
+ ENDFOREACH(flag_var)
+ ENDIF (USE_MSVC_RELEASE_RUNTIME_ALWAYS)
+
IF (CMAKE_CL_64)
ADD_DEFINITIONS(-D_WIN64)
ELSE()