@@ -46,6 +46,10 @@ IF(CMAKE_C_COMPILER MATCHES "icl")
4646 SET (MSVC TRUE )
4747ENDIF ()
4848
49+ IF (MSVC AND CMAKE_CXX_COMPILER_ID MATCHES Clang)
50+ SET (CLANG_CL TRUE )
51+ ENDIF ()
52+
4953ADD_DEFINITIONS (-D_WINDOWS -D__WIN__ -D_CRT_SECURE_NO_DEPRECATE)
5054ADD_DEFINITIONS (-D_WIN32_WINNT=0x0A00)
5155# We do not want the windows.h macros min/max
@@ -60,7 +64,7 @@ IF(MINGW AND CMAKE_SIZEOF_VOID_P EQUAL 4)
6064ENDIF ()
6165
6266FUNCTION (ENABLE_ASAN)
63- IF (NOT ( MSVC AND CMAKE_CXX_COMPILER_ID MATCHES Clang) )
67+ IF (NOT CLANG_CL )
6468 MESSAGE (FATAL_ERROR "clang-cl is necessary to enable asan" )
6569 ENDIF ()
6670 # currently, asan is broken with static CRT.
@@ -141,7 +145,7 @@ IF(MSVC)
141145 ENDIF ()
142146 ENDFOREACH ()
143147
144- IF (CMAKE_CXX_COMPILER_ID MATCHES Clang )
148+ IF (CLANG_CL )
145149 SET (CLANG_CL_FLAGS
146150"-Wno-unknown-warning-option -Wno-unused-private-field \
147151-Wno-unused-parameter -Wno-inconsistent-missing-override \
@@ -173,21 +177,22 @@ IF(MSVC)
173177 ENDIF ()
174178
175179 # Speed up multiprocessor build
176- IF (NOT CMAKE_CXX_COMPILER_ID MATCHES Clang )
180+ IF (NOT CLANG_CL )
177181 SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP" )
178182 SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP" )
179183 ENDIF ()
180184
181185 #TODO: update the code and remove the disabled warnings
182186 SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /we4700 /we4311 /we4477 /we4302 /we4090" )
183187 SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /we4099 /we4700 /we4311 /we4477 /we4302 /we4090" )
184- IF (MSVC_VERSION GREATER 1910 AND ( NOT CMAKE_CXX_COMPILER_ID MATCHES Clang) )
188+ IF (MSVC_VERSION GREATER 1910 AND NOT CLANG_CL )
185189 SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /permissive-" )
186190 ENDIF ()
187191 ADD_DEFINITIONS (-D_CRT_NONSTDC_NO_WARNINGS)
188192 IF (MYSQL_MAINTAINER_MODE MATCHES "ERR" )
189193 SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX" )
190194 SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX" )
195+ MESSAGE ("MEH" )
191196 FOREACH (type EXE SHARED MODULE)
192197 FOREACH (cfg RELEASE DEBUG RELWITHDEBINFO)
193198 SET (CMAKE_${type} _LINKER_FLAGS_${cfg} "${CMAKE_${type} _LINKER_FLAGS_${cfg} } /WX" )
@@ -198,7 +203,7 @@ IF(MSVC)
198203 # Noisy warning C4800: 'type': forcing value to bool 'true' or 'false' (performance warning),
199204 # removed in VS2017
200205 SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4800" )
201- ELSEIF (NOT (CMAKE_CXX_COMPILER_ID MATCHES Clang) )
206+ ELSEIF (NOT CLANG_CL )
202207 SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /d2OptimizeHugeFunctions" )
203208 ENDIF ()
204209ENDIF ()
0 commit comments