diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 16 |
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() |