# Default: dynamic libraries:\r
SET(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libraries (.dll/.so) instead of static ones (.lib/.a)")\r
IF(BUILD_SHARED_LIBS)\r
- SET(OPENCV_BUILD_SHARED_LIB 1) # For cvconfig.h, etc.\r
+ SET(OPENCV_BUILD_SHARED_LIB 1) # For cvconfig.h, etc.\r
ELSE(BUILD_SHARED_LIBS)\r
- SET(OPENCV_BUILD_SHARED_LIB 0)\r
+ SET(OPENCV_BUILD_SHARED_LIB 0)\r
ENDIF(BUILD_SHARED_LIBS)\r
\r
# ----------------------------------------------------------------------------\r
# the -fPIC flag should be used.\r
# ----------------------------------------------------------------------------\r
if(UNIX)\r
- if (__ICL)\r
- set(CV_ICC __ICL)\r
- elseif(__ICC)\r
- set(CV_ICC __ICC)\r
- elseif(__ECL)\r
- set(CV_ICC __ECL)\r
- elseif(__ECC)\r
- set(CV_ICC __ECC)\r
- elseif(__INTEL_COMPILER)\r
- set(CV_ICC __INTEL_COMPILER)\r
- elseif(CMAKE_C_COMPILER MATCHES "icc")\r
- set(CV_ICC icc_matches_c_compiler)\r
- endif()\r
+ if (__ICL)\r
+ set(CV_ICC __ICL)\r
+ elseif(__ICC)\r
+ set(CV_ICC __ICC)\r
+ elseif(__ECL)\r
+ set(CV_ICC __ECL)\r
+ elseif(__ECC)\r
+ set(CV_ICC __ECC)\r
+ elseif(__INTEL_COMPILER)\r
+ set(CV_ICC __INTEL_COMPILER)\r
+ elseif(CMAKE_C_COMPILER MATCHES "icc")\r
+ set(CV_ICC icc_matches_c_compiler)\r
+ endif()\r
endif()\r
\r
# ----------------------------------------------------------------------------\r
endif()\r
\r
#if(MSVC)\r
-# set(DEFAULT_ENABLE_OPENMP ON)\r
+# set(DEFAULT_ENABLE_OPENMP ON)\r
#else()\r
-# set(DEFAULT_ENABLE_OPENMP OFF)\r
+# set(DEFAULT_ENABLE_OPENMP OFF)\r
#endif()\r
#set(ENABLE_OPENMP ${DEFAULT_ENABLE_OPENMP} CACHE BOOL "")\r
\r
if(UNIX)\r
set(WITH_FFMPEG ON CACHE BOOL "Include FFMPEG support")\r
if(NOT APPLE)\r
- set(WITH_UNICAP OFF CACHE BOOL "Include Unicap support (GPL)")\r
- set(WITH_GTK ON CACHE BOOL "Include GTK support")\r
- set(WITH_GSTREAMER ON CACHE BOOL "Include Gstreamer support")\r
- set(WITH_V4L ON CACHE BOOL "Include Video 4 Linux support")\r
- set(WITH_XINE OFF CACHE BOOL "Include Xine support (GPL)")\r
- endif()\r
- set(WITH_PVAPI ON CACHE BOOL "Include Prosilica GigE support")\r
- set(WITH_1394 ON CACHE BOOL "Include IEEE1394 support")\r
+ set(WITH_UNICAP OFF CACHE BOOL "Include Unicap support (GPL)")\r
+ set(WITH_GTK ON CACHE BOOL "Include GTK support")\r
+ set(WITH_GSTREAMER ON CACHE BOOL "Include Gstreamer support")\r
+ set(WITH_V4L ON CACHE BOOL "Include Video 4 Linux support")\r
+ set(WITH_XINE OFF CACHE BOOL "Include Xine support (GPL)")\r
+ endif()\r
+ set(WITH_PVAPI ON CACHE BOOL "Include Prosilica GigE support")\r
+ set(WITH_1394 ON CACHE BOOL "Include IEEE1394 support")\r
endif()\r
\r
if(APPLE)\r
- set(WITH_CARBON OFF CACHE BOOL "Use Carbon for UI instead of Cocoa")\r
- set(WITH_QUICKTIME OFF CACHE BOOL "Use QuickTime for Video I/O insted of QTKit")\r
+ set(WITH_CARBON OFF CACHE BOOL "Use Carbon for UI instead of Cocoa")\r
+ set(WITH_QUICKTIME OFF CACHE BOOL "Use QuickTime for Video I/O insted of QTKit")\r
endif()\r
\r
set(WITH_TBB OFF CACHE BOOL "Include TBB support")\r
\r
if(CMAKE_COMPILER_IS_GNUCXX)\r
\r
- if(WIN32)\r
- if(CMAKE_CXX_COMPILER MATCHES "64")\r
- set(MINGW64 1)\r
- endif()\r
- endif()\r
+ if(WIN32)\r
+ if(CMAKE_CXX_COMPILER MATCHES "64")\r
+ set(MINGW64 1)\r
+ endif()\r
+ endif()\r
\r
# High level of warnings.\r
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wall")\r
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Werror")\r
endif()\r
\r
- if(X86)\r
+ if(X86)\r
if(NOT X86_64)\r
if(NOT APPLE)\r
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -march=i686")\r
endif()\r
endif()\r
- endif()\r
+ endif()\r
\r
# Other optimizations\r
if(USE_OMIT_FRAME_POINTER)\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
- set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} stdc++)\r
- endif()\r
+ if(CMAKE_COMPILER_IS_GNUCXX)\r
+ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} stdc++)\r
+ endif()\r
\r
- set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} flann zlib opencv_lapack)\r
+ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} flann zlib opencv_lapack)\r
endif()\r
\r
\r
message(STATUS " GUI Back-end: Cocoa")\r
endif()\r
message(STATUS "")\r
-endif() \r
+endif() \r
\r
message(STATUS " Image I/O: ")\r
if(NOT WITH_JPEG OR JPEG_FOUND)\r
message(STATUS " JPEG: build")\r
endif()\r
\r
-if(NOT WIDTH_PNG OR PNG_FOUND)\r
+if(NOT WITH_PNG OR PNG_FOUND)\r
message(STATUS " PNG: ${PNG_FOUND}")\r
else()\r
message(STATUS " PNG: build")\r
#set(CPACK_COMPONENT_py_INSTALL_TYPES Full)
set(CPACK_SOURCE_IGNORE_FILES
- "/\\\\.svn/"
- "/autom4te.cache/"
- "/build/"
- "/lib/"
- "~$"
- "\\\\.aux$"
- "\\\\.bbl$"
- "\\\\.blg$"
- "\\\\.idx$"
- "\\\\.ilg$"
- "\\\\.ind$"
- "\\\\.log$"
- "\\\\.toc$"
- "\\\\.out$"
- "\\\\.vcproj$"
- "/1$"
- "${CPACK_SOURCE_IGNORE_FILES}")
+ "/\\\\.svn/"
+ "/autom4te.cache/"
+ "/build/"
+ "/lib/"
+ "~$"
+ "\\\\.aux$"
+ "\\\\.bbl$"
+ "\\\\.blg$"
+ "\\\\.idx$"
+ "\\\\.ilg$"
+ "\\\\.ind$"
+ "\\\\.log$"
+ "\\\\.toc$"
+ "\\\\.out$"
+ "\\\\.vcproj$"
+ "/1$"
+ "${CPACK_SOURCE_IGNORE_FILES}")
+
+set(CPACK_SOURCE_PACKAGE_FILE_NAME
+ "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
if(WIN32)
set(CPACK_GENERATOR "NSIS")
+ set(CPACK_SOURCE_GENERATOR "ZIP")
set(CPACK_NSIS_PACKAGE_NAME "OpenCV ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}\\\\utils\\\\opencv.ico")
set(CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}\\\\utils\\\\opencv.ico")
- #set(CPACK_PACKAGE_ICON "utils/opencv.ico")
-
+ #set(CPACK_PACKAGE_ICON "utils/opencv.ico")
+
set(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_SOURCE_DIR}\\\\utils\\\\opencv.ico")
set(CPACK_NSIS_HELP_LINK "http:\\\\\\\\opencvlibrary.sourceforge.net")
- set(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\opencvlibrary.sourceforge.net")
- set(CPACK_NSIS_CONTACT "info@opencvlibrary.sourceforge.net")
- set(CPACK_NSIS_DISPLAY_NAME "OpenCV SDK")
+ set(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\opencvlibrary.sourceforge.net")
+ set(CPACK_NSIS_CONTACT "info@opencvlibrary.sourceforge.net")
+ set(CPACK_NSIS_DISPLAY_NAME "OpenCV SDK")
set(CPACK_NSIS_MENU_LINKS
"doc\\\\index.htm" "Start Page"
"CMakeLists.txt" "The Build Script (open with CMake)"
"samples\\\\c" "C Samples"
"samples\\\\python" "Python Samples")
-
+
# Add "<install_path>/bin" to the system PATH
set(CPACK_NSIS_MODIFY_PATH ON)
else()
set(CPACK_GENERATOR "TBZ2")
set(CPACK_SOURCE_GENERATOR "TBZ2")
- set(CPACK_SOURCE_PACKAGE_FILE_NAME
- "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
if(APPLE)
- set(CPACK_GENERATOR "PackageMaker;TBZ2")
+ set(CPACK_GENERATOR "PackageMaker;TBZ2")
endif()
endif()
if they are available. That is, it should be more safe to use WITH_SSE* flags in CMake.
However, if you want maximum portability, it's recommended to turn on just WITH_SSE and WITH_SSE2
and leave other SSE* turned off, as we found that using WITH_SSE3, WITH_SSSE3 and WITH_SSE4_1 can yield
- the code incompatible with Intel's pre-Penryn or AMD chips.
+ the code incompatible with Intel's pre-Penryn or AMD chips.
+
+ - Experimental "static" OpenCV configuration in CMake was contributed by Jose Luis Blanco.
+ Pass "BUILD_SHARED_LIBS=OFF" to CMake to build OpenCV statically.
>>> New functionality, features:
<a href="http://www.intel.com/software/products/ipp/index.htm">
http://www.intel.com/software/products/ipp/index.htm</a></p>
-Then, OpenCV itself can be built with OpenMP support, and, starting with v2.0,
-OpenCV includes SSE2-optimized code, so many of the functions run significantly
+Then, OpenCV itself can be built with <a href="http://www.threadingbuildingblocks.org/">TBB</a>
+support, and, starting with v2.0,
+OpenCV also includes SSE2-optimized code, so many of the functions run significantly
faster on the modern 32-bit x86 and 64-bit x64 platforms, and even faster on dual-,
quad- and many-core systems.
<li>Join OpenCV mailing list at yahoo groups (see FAQs on how to do it) and mail your questions
(the mailing list will probably migrate to
<a href="http://www.sourceforge.net/projects/opencvlibrary">OpenCV's SourceForge site</a>)
-<li>Look at the OpenCV sample code, read the reference manual (<a href="opencv.pdf">offline in PDF</a>
- or <a href="http://opencv.willowgarage.com/documentation/index.html">online</a>)
+<li>Look at the OpenCV sample code, read the reference manual <a href="opencv.pdf">offline in PDF</a>
+ or online (<a href="http://opencv.willowgarage.com/documentation/c/index.html">C</a>,
+ <a href="http://opencv.willowgarage.com/documentation/cpp/index.html">C++</a> and
+ <a href="http://opencv.willowgarage.com/documentation/python/index.html">Python</a>).
+
</ol>
</body></html>
cn *= ESZ;
int i, k, _ksize = ksize*cn;
- width *= cn;
+ width = (width & -4)*cn;
VecUpdate updateOp;
for( i = 0; i <= width - 16; i += 16 )
_mm_storeu_si128((__m128i*)(dst + i), s);
}
- for( ; i <= width - 4; i += 4 )
+ for( ; i < width; i += 4 )
{
__m128i s = _mm_cvtsi32_si128(*(const int*)(src + i));
for( k = cn; k < _ksize; k += cn )
return 0;
int i, k, _ksize = ksize*cn;
- width *= cn;
+ width = (width & -4)*cn;
VecUpdate updateOp;
- for( i = 0; i <= width - 4; i += 4 )
+ for( i = 0; i < width; i += 4 )
{
__m128 s = _mm_loadu_ps((const float*)src + i);
for( k = cn; k < _ksize; k += cn )