Enable Intel AVX/AVX2 compilation on Windows.

This commit is contained in:
Richard Yoo
2014-07-21 13:26:50 -07:00
parent c38023f4e7
commit de37cfc224
2 changed files with 10 additions and 10 deletions

View File

@@ -220,14 +220,6 @@ if(MSVC)
set(OPENCV_EXTRA_FLAGS_RELEASE "${OPENCV_EXTRA_FLAGS_RELEASE} /Zi") set(OPENCV_EXTRA_FLAGS_RELEASE "${OPENCV_EXTRA_FLAGS_RELEASE} /Zi")
endif() endif()
if(ENABLE_AVX AND NOT MSVC_VERSION LESS 1600)
set(OPENCV_EXTRA_FLAGS "${OPENCV_EXTRA_FLAGS} /arch:AVX")
endif()
if(ENABLE_AVX2 AND NOT MSVC_VERSION LESS 1800)
set(OPENCV_EXTRA_FLAGS "${OPENCV_EXTRA_FLAGS} /arch:AVX2")
endif()
if(ENABLE_SSE4_1 AND CV_ICC AND NOT OPENCV_EXTRA_FLAGS MATCHES "/arch:") if(ENABLE_SSE4_1 AND CV_ICC AND NOT OPENCV_EXTRA_FLAGS MATCHES "/arch:")
set(OPENCV_EXTRA_FLAGS "${OPENCV_EXTRA_FLAGS} /arch:SSE4.1") set(OPENCV_EXTRA_FLAGS "${OPENCV_EXTRA_FLAGS} /arch:SSE4.1")
endif() endif()

View File

@@ -529,14 +529,22 @@ macro(ocv_glob_module_sources)
if(ENABLE_AVX) if(ENABLE_AVX)
file(GLOB avx_srcs "src/avx/*.cpp") file(GLOB avx_srcs "src/avx/*.cpp")
foreach(src ${avx_srcs}) foreach(src ${avx_srcs})
set_source_files_properties(${src} PROPERTIES COMPILE_FLAGS -mavx) if(CMAKE_COMPILER_IS_GNUCXX)
set_source_files_properties(${src} PROPERTIES COMPILE_FLAGS -mavx)
elseif(MSVC AND NOT MSVC_VERSION LESS 1600)
set_source_files_properties(${src} PROPERTIES COMPILE_FLAGS /arch:AVX)
endif()
endforeach() endforeach()
endif() endif()
if(ENABLE_AVX2) if(ENABLE_AVX2)
file(GLOB avx2_srcs "src/avx2/*.cpp") file(GLOB avx2_srcs "src/avx2/*.cpp")
foreach(src ${avx2_srcs}) foreach(src ${avx2_srcs})
set_source_files_properties(${src} PROPERTIES COMPILE_FLAGS -mavx2) if(CMAKE_COMPILER_IS_GNUCXX)
set_source_files_properties(${src} PROPERTIES COMPILE_FLAGS -mavx2)
elseif(MSVC AND NOT MSVC_VERSION LESS 1800)
set_source_files_properties(${src} PROPERTIES COMPILE_FLAGS /arch:AVX2)
endif()
endforeach() endforeach()
endif() endif()