summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2014-02-28 08:04:30 +0000
committerAlexey Samsonov <samsonov@google.com>2014-02-28 08:04:30 +0000
commit61dc076b63907f61ee59e6ed7c8dffdf27f1f10b (patch)
tree9c6034107ec96b0aac4035c7c0230c2451af8c44 /CMakeLists.txt
parente8910c5eb8386513e8823d00246aae5dca383cc5 (diff)
[CMake] Fix PR18987: discard /MD flag if we're adding /MT
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202472 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt12
1 files changed, 9 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 57690a722..b77ad63c3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -255,9 +255,15 @@ append_if(SANITIZER_COMMON_CFLAGS COMPILER_RT_HAS_FNO_STACK_PROTECTOR_FLAG -fno-
append_if(SANITIZER_COMMON_CFLAGS COMPILER_RT_HAS_FVISIBILITY_HIDDEN_FLAG -fvisibility=hidden)
append_if(SANITIZER_COMMON_CFLAGS COMPILER_RT_HAS_FNO_FUNCTION_SECTIONS_FLAG -fno-function-sections)
-append_if(SANITIZER_COMMON_CFLAGS COMPILER_RT_HAS_MT_FLAG /MT)
-append_if(SANITIZER_COMMON_CFLAGS COMPILER_RT_HAS_Oy_FLAG /Oy-)
-append_if(SANITIZER_COMMON_CFLAGS COMPILER_RT_HAS_GS_FLAG /GS-)
+if(MSVC)
+ # Remove /MD flag so that it doesn't conflict with /MT.
+ if(COMPILER_RT_HAS_MT_FLAG)
+ string(REGEX REPLACE "(^| ) */MD *( |$)" "\\1 \\2" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+ list(APPEND SANITIZER_COMMON_CFLAGS /MT)
+ endif()
+ append_if(SANITIZER_COMMON_CFLAGS COMPILER_RT_HAS_Oy_FLAG /Oy-)
+ append_if(SANITIZER_COMMON_CFLAGS COMPILER_RT_HAS_GS_FLAG /GS-)
+endif()
# Build with optimization, unless we're in debug mode.
if(NOT COMPILER_RT_DEBUG)