Add an option to link with MSVC static runtime instead of the dynamic one

Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f31794d..2fecb6e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -242,6 +242,20 @@
     endif(CMAKE_COMPILER_IS_CLANG OR CMAKE_COMPILER_IS_GNU)
 endif(MBEDTLS_FATAL_WARNINGS)
 
+if(MSVC)
+    option(BUILD_WITH_STATIC_RUNTIME "Build the libraries with /MT compiler flag" OFF)
+    if(BUILD_WITH_STATIC_RUNTIME)
+        foreach(flag_var
+            CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
+            CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
+            CMAKE_C_FLAGS_CHECK)
+            if(${flag_var} MATCHES "/MD")
+                string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
+            endif(${flag_var} MATCHES "/MD")
+        endforeach(flag_var)
+    endif()
+endif()
+
 if(CMAKE_BUILD_TYPE STREQUAL "Coverage")
     if(CMAKE_COMPILER_IS_GNU OR CMAKE_COMPILER_IS_CLANG)
         set(CMAKE_SHARED_LINKER_FLAGS "--coverage")