From 079cb9b3e5e26b4b342ce0581475e63cafe618a6 Mon Sep 17 00:00:00 2001 From: Hans Wennborg Date: Wed, 13 Nov 2013 18:16:23 +0000 Subject: [PATCH] cmake: link release builds statically against run-time library on windows (use /MT instead of /MD) This should fix the problem of snapshot builds created with MSVC 2012 not working for users with MSVC 2010, etc. Differential Revision: http://llvm-reviews.chandlerc.com/D2157 llvm-svn: 194589 --- llvm/cmake/modules/HandleLLVMOptions.cmake | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake index bb41a58df2dd..ff71c00544fd 100644 --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -5,6 +5,7 @@ include(AddLLVMDefinitions) include(CheckCCompilerFlag) include(CheckCXXCompilerFlag) +include(LLVMProcessSources) if( CMAKE_COMPILER_IS_GNUCXX ) set(LLVM_COMPILER_IS_GCC_COMPATIBLE ON) @@ -40,6 +41,15 @@ else() endif() endif() +if(MSVC) + # Link release builds against the static runtime. + foreach(flag CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO + CMAKE_C_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_RELWITHDEBINFO CMAKE_CXX_FLAGS_MINSIZEREL) + llvm_replace_compiler_option("${flag}" "/MD" "/MT") + endforeach() +endif() + if(WIN32) if(CYGWIN) set(LLVM_ON_WIN32 0)