added SSE compiler flags under Windows+MSVC (ticket #371)
authorAlexander Shishkov <no@email>
Tue, 31 May 2011 15:50:16 +0000 (15:50 +0000)
committerAlexander Shishkov <no@email>
Tue, 31 May 2011 15:50:16 +0000 (15:50 +0000)
CMakeLists.txt

index c67a2fd..ac5c30b 100644 (file)
@@ -277,6 +277,15 @@ if(CMAKE_COMPILER_IS_GNUCXX)
     endif()\r
 endif()\r
 \r
+if(MSVC)\r
+    set(ENABLE_SSE ON CACHE BOOL "Enable SSE instructions for MSVC")\r
+    set(ENABLE_SSE2 ON CACHE BOOL "Enable SSE2 instructions for MSVC")\r
+    if(CMAKE_C_COMPILER MATCHES "icc")\r
+        set(ENABLE_SSE3 OFF CACHE BOOL "Enable SSE3 instructions for ICC")\r
+        set(ENABLE_SSE4_1 OFF CACHE BOOL "Enable SSE4.1 instructions for ICC")\r
+    endif()\r
+endif()\r
+\r
 # allow fine grained control over which libraries not to link, even if\r
 # they are available on the system\r
 # ====================================================================\r
@@ -1023,6 +1032,24 @@ if(CMAKE_COMPILER_IS_GNUCXX)
 \r
 endif()\r
 \r
+if(MSVC)\r
+    if(ENABLE_SSE)\r
+       set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /arch:SSE")\r
+    endif()\r
+    if(ENABLE_SSE2)\r
+       set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /arch:SSE2")\r
+    endif()\r
+    if(ENABLE_SSE3)\r
+       set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /arch:SSE3")\r
+    endif()\r
+    if(ENABLE_SSE4_1)\r
+       set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /arch:SSE4.1")\r
+    endif()\r
+    if (ENABLE_SSE OR ENABLE_SSE2 OR ENABLE_SSE3 OR ENABLE_SSE4_1)\r
+       set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /Oi")\r
+    endif()\r
+endif()\r
+\r
 # Extra link libs if the user selects building static libs:\r
 IF(NOT BUILD_SHARED_LIBS)\r
     if(CMAKE_COMPILER_IS_GNUCXX)\r