if(NOT DEFINED MSVC_RUNTIME)
set(MSVC_RUNTIME "dynamic")
endif()
+ if(${MSVC_RUNTIME} STREQUAL "static")
+ message(STATUS "Use the MSVC static runtime option carefully!")
+ message(STATUS "OpenSSL uses /MD by default, and is very picky")
+ message(STATUS "Random freeing errors are a common sign of runtime issues")
+ endif()
configure_msvc_runtime()
endif()
CMAKE_CXX_FLAGS_RELWITHDEBINFO
)
if(${MSVC_RUNTIME} STREQUAL "static")
- message(STATUS
- "MSVC: using statically-linked runtime (/MT and /MTd)."
- )
+ message(STATUS "MSVC: using statically-linked runtime (/MT and /MTd).")
foreach(variable ${variables})
if(${variable} MATCHES "/MD")
string(REGEX REPLACE "/MD" "/MT" ${variable} "${${variable}}")
endif()
endforeach()
else()
- message(STATUS
- "MSVC: using dynamically-linked runtime (/MD and /MDd)."
- )
+ message(STATUS "MSVC: using dynamically-linked runtime (/MD and /MDd).")
foreach(variable ${variables})
if(${variable} MATCHES "/MT")
string(REGEX REPLACE "/MT" "/MD" ${variable} "${${variable}}")
endif()
endforeach()
endif()
+ foreach(variable ${variables})
+ set(${variable} "${${variable}}" CACHE STRING "MSVC_${variable}" FORCE)
+ endforeach()
endif()
endmacro(configure_msvc_runtime)