I'm looking through CmakeLists and I found that if I generate MSYS makefiles Cmake will append MSVC's /arch:SSE2 flags. # Common settings
if(WIN32)
if(WIN64)
if(MSVC)
set(SharedDefines "WIN64" "_CRT_SECURE_NO_WARNINGS")
else(MSVC)
set(SharedDefines "WIN64")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /arch:SSE2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE2")
endif(MSVC)
else(WIN64)
if(MSVC)
set(SharedDefines "_CRT_SECURE_NO_WARNINGS")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /arch:SSE2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE2")
endif(MSVC)
endif(WIN64) If we're compiling for Windows then check to see if we're compiling for x86-64. If we are then check to see if we're compiling with MSVC. If MSVC is the working compiler then define WIN64 and disable warnings, otherwise still define WIN64 but define compiler flags for MSVC even though MSVC is not the working compiler. Why is Cmake being told to generate compiler flags for MSVC if MSVC was already established to not be the working compiler?