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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194589 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Hans Wennborg 2013-11-13 18:16:23 +00:00
parent a9a8f0f432
commit e258845a63

View File

@ -5,6 +5,7 @@
include(AddLLVMDefinitions) include(AddLLVMDefinitions)
include(CheckCCompilerFlag) include(CheckCCompilerFlag)
include(CheckCXXCompilerFlag) include(CheckCXXCompilerFlag)
include(LLVMProcessSources)
if( CMAKE_COMPILER_IS_GNUCXX ) if( CMAKE_COMPILER_IS_GNUCXX )
set(LLVM_COMPILER_IS_GCC_COMPATIBLE ON) set(LLVM_COMPILER_IS_GCC_COMPATIBLE ON)
@ -40,6 +41,15 @@ else()
endif() endif()
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(WIN32)
if(CYGWIN) if(CYGWIN)
set(LLVM_ON_WIN32 0) set(LLVM_ON_WIN32 0)