]> granicus.if.org Git - libexpat/commitdiff
CMake: Add option MSVC_USE_STATIC_CRT (#184)
authorpedro-vicente <pedro.vicente@space-research.org>
Sun, 7 Jan 2018 22:49:47 +0000 (17:49 -0500)
committerSebastian Pipping <sebastian@pipping.org>
Sun, 7 Jan 2018 23:50:31 +0000 (00:50 +0100)
to compile as C++/static CRT on Visual Studio

expat/CMakeLists.txt

index b2694e303f8023723f469dac7ae65a0b16d41971..4d7fc0c71185af7a3f57d2fb59abaf5d10a607a0 100644 (file)
@@ -88,6 +88,23 @@ endif(WARNINGS_AS_ERRORS)
 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_COMPILE_FLAGS}")\r
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_COMPILE_FLAGS}")\r
 \r
+set(MSVC_USE_STATIC_CRT off CACHE BOOL "Use /MT flag(static CRT) when compiling in MSVC")\r
+if (MSVC)\r
+    if (MSVC_USE_STATIC_CRT)\r
+        message("-- Using static CRT ${MSVC_USE_STATIC_CRT}")\r
+        foreach(flag_var CMAKE_CXX_FLAGS_DEBUG\r
+            CMAKE_CXX_FLAGS_RELEASE\r
+            CMAKE_CXX_FLAGS_MINSIZEREL\r
+            CMAKE_CXX_FLAGS_RELWITHDEBINFO\r
+            CMAKE_C_FLAGS_DEBUG\r
+            CMAKE_C_FLAGS_RELEASE\r
+            CMAKE_C_FLAGS_MINSIZEREL\r
+            CMAKE_C_FLAGS_RELWITHDEBINFO)\r
+            string(REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")\r
+        endforeach()\r
+    endif()\r
+endif()\r
+\r
 include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/lib)\r
 if(MSVC)\r
     add_definitions(-D_CRT_SECURE_NO_WARNINGS -wd4996)\r