From 41654194f6ca15beab5bbc31d1667e6801874ef9 Mon Sep 17 00:00:00 2001 From: vp153 Date: Mon, 5 Apr 2010 23:51:44 +0000 Subject: [PATCH] added "zip" option to the Package.cmake.in, fixed test failure in cvmorph when built with GCC 4.4, updated the index.htm and the ChangeLog. git-svn-id: https://code.ros.org/svn/opencv/trunk@2995 73c94f0f-984f-4a5f-82bc-2d8db8d8ee08 --- opencv/CMakeLists.txt | 80 +++++++++++++++++++-------------------- opencv/Package.cmake.in | 54 +++++++++++++------------- opencv/doc/ChangeLog.htm | 5 ++- opencv/doc/index.htm | 12 ++++-- opencv/src/cv/cvmorph.cpp | 8 ++-- 5 files changed, 84 insertions(+), 75 deletions(-) diff --git a/opencv/CMakeLists.txt b/opencv/CMakeLists.txt index c8593828..01830f34 100644 --- a/opencv/CMakeLists.txt +++ b/opencv/CMakeLists.txt @@ -88,9 +88,9 @@ endif() # Default: dynamic libraries: SET(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libraries (.dll/.so) instead of static ones (.lib/.a)") IF(BUILD_SHARED_LIBS) - SET(OPENCV_BUILD_SHARED_LIB 1) # For cvconfig.h, etc. + SET(OPENCV_BUILD_SHARED_LIB 1) # For cvconfig.h, etc. ELSE(BUILD_SHARED_LIBS) - SET(OPENCV_BUILD_SHARED_LIB 0) + SET(OPENCV_BUILD_SHARED_LIB 0) ENDIF(BUILD_SHARED_LIBS) # ---------------------------------------------------------------------------- @@ -157,19 +157,19 @@ endif() # the -fPIC flag should be used. # ---------------------------------------------------------------------------- if(UNIX) - if (__ICL) - set(CV_ICC __ICL) - elseif(__ICC) - set(CV_ICC __ICC) - elseif(__ECL) - set(CV_ICC __ECL) - elseif(__ECC) - set(CV_ICC __ECC) - elseif(__INTEL_COMPILER) - set(CV_ICC __INTEL_COMPILER) - elseif(CMAKE_C_COMPILER MATCHES "icc") - set(CV_ICC icc_matches_c_compiler) - endif() + if (__ICL) + set(CV_ICC __ICL) + elseif(__ICC) + set(CV_ICC __ICC) + elseif(__ECL) + set(CV_ICC __ECL) + elseif(__ECC) + set(CV_ICC __ECC) + elseif(__INTEL_COMPILER) + set(CV_ICC __INTEL_COMPILER) + elseif(CMAKE_C_COMPILER MATCHES "icc") + set(CV_ICC icc_matches_c_compiler) + endif() endif() # ---------------------------------------------------------------------------- @@ -204,9 +204,9 @@ if(UNIX) endif() #if(MSVC) -# set(DEFAULT_ENABLE_OPENMP ON) +# set(DEFAULT_ENABLE_OPENMP ON) #else() -# set(DEFAULT_ENABLE_OPENMP OFF) +# set(DEFAULT_ENABLE_OPENMP OFF) #endif() #set(ENABLE_OPENMP ${DEFAULT_ENABLE_OPENMP} CACHE BOOL "") @@ -264,19 +264,19 @@ set(WITH_TIFF ON CACHE BOOL "Include TIFF support") if(UNIX) set(WITH_FFMPEG ON CACHE BOOL "Include FFMPEG support") if(NOT APPLE) - set(WITH_UNICAP OFF CACHE BOOL "Include Unicap support (GPL)") - set(WITH_GTK ON CACHE BOOL "Include GTK support") - set(WITH_GSTREAMER ON CACHE BOOL "Include Gstreamer support") - set(WITH_V4L ON CACHE BOOL "Include Video 4 Linux support") - set(WITH_XINE OFF CACHE BOOL "Include Xine support (GPL)") - endif() - set(WITH_PVAPI ON CACHE BOOL "Include Prosilica GigE support") - set(WITH_1394 ON CACHE BOOL "Include IEEE1394 support") + set(WITH_UNICAP OFF CACHE BOOL "Include Unicap support (GPL)") + set(WITH_GTK ON CACHE BOOL "Include GTK support") + set(WITH_GSTREAMER ON CACHE BOOL "Include Gstreamer support") + set(WITH_V4L ON CACHE BOOL "Include Video 4 Linux support") + set(WITH_XINE OFF CACHE BOOL "Include Xine support (GPL)") + endif() + set(WITH_PVAPI ON CACHE BOOL "Include Prosilica GigE support") + set(WITH_1394 ON CACHE BOOL "Include IEEE1394 support") endif() if(APPLE) - set(WITH_CARBON OFF CACHE BOOL "Use Carbon for UI instead of Cocoa") - set(WITH_QUICKTIME OFF CACHE BOOL "Use QuickTime for Video I/O insted of QTKit") + set(WITH_CARBON OFF CACHE BOOL "Use Carbon for UI instead of Cocoa") + set(WITH_QUICKTIME OFF CACHE BOOL "Use QuickTime for Video I/O insted of QTKit") endif() set(WITH_TBB OFF CACHE BOOL "Include TBB support") @@ -731,11 +731,11 @@ endif() if(CMAKE_COMPILER_IS_GNUCXX) - if(WIN32) - if(CMAKE_CXX_COMPILER MATCHES "64") - set(MINGW64 1) - endif() - endif() + if(WIN32) + if(CMAKE_CXX_COMPILER MATCHES "64") + set(MINGW64 1) + endif() + endif() # High level of warnings. set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wall") @@ -757,13 +757,13 @@ if(CMAKE_COMPILER_IS_GNUCXX) set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Werror") endif() - if(X86) + if(X86) if(NOT X86_64) if(NOT APPLE) set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -march=i686") endif() endif() - endif() + endif() # Other optimizations if(USE_OMIT_FRAME_POINTER) @@ -835,11 +835,11 @@ endif() # Extra link libs if the user selects building static libs: IF(NOT BUILD_SHARED_LIBS) - if(CMAKE_COMPILER_IS_GNUCXX) - set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} stdc++) - endif() + if(CMAKE_COMPILER_IS_GNUCXX) + set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} stdc++) + endif() - set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} flann zlib opencv_lapack) + set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} flann zlib opencv_lapack) endif() @@ -1114,7 +1114,7 @@ else() message(STATUS " GUI Back-end: Cocoa") endif() message(STATUS "") -endif() +endif() message(STATUS " Image I/O: ") if(NOT WITH_JPEG OR JPEG_FOUND) @@ -1123,7 +1123,7 @@ else() message(STATUS " JPEG: build") endif() -if(NOT WIDTH_PNG OR PNG_FOUND) +if(NOT WITH_PNG OR PNG_FOUND) message(STATUS " PNG: ${PNG_FOUND}") else() message(STATUS " PNG: build") diff --git a/opencv/Package.cmake.in b/opencv/Package.cmake.in index bc4f458f..6e8ea9c8 100644 --- a/opencv/Package.cmake.in +++ b/opencv/Package.cmake.in @@ -42,36 +42,40 @@ set(CPACK_COMPONENT_SRC_INSTALL_TYPES Full) #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" @@ -79,17 +83,15 @@ if(WIN32) "CMakeLists.txt" "The Build Script (open with CMake)" "samples\\\\c" "C Samples" "samples\\\\python" "Python Samples") - + # Add "/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() diff --git a/opencv/doc/ChangeLog.htm b/opencv/doc/ChangeLog.htm index dd2822bb..44dff6ed 100644 --- a/opencv/doc/ChangeLog.htm +++ b/opencv/doc/ChangeLog.htm @@ -49,7 +49,10 @@ OpenCV 2.1 is basically a stabilized OpenCV 2.0, yet there are a few new feature 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: diff --git a/opencv/doc/index.htm b/opencv/doc/index.htm index da0adeba..189cfdf7 100644 --- a/opencv/doc/index.htm +++ b/opencv/doc/index.htm @@ -67,8 +67,9 @@ More information about IPP can be retrieved at http://www.intel.com/software/products/ipp/index.htm

-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 TBB +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. @@ -105,8 +106,11 @@ look for the information there (and/or add it when you have found a solution)
  • 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 OpenCV's SourceForge site) -
  • Look at the OpenCV sample code, read the reference manual (offline in PDF - or online) +
  • Look at the OpenCV sample code, read the reference manual offline in PDF + or online (C, + C++ and + Python). + diff --git a/opencv/src/cv/cvmorph.cpp b/opencv/src/cv/cvmorph.cpp index edbe3b72..e7745084 100644 --- a/opencv/src/cv/cvmorph.cpp +++ b/opencv/src/cv/cvmorph.cpp @@ -89,7 +89,7 @@ template struct MorphRowIVec cn *= ESZ; int i, k, _ksize = ksize*cn; - width *= cn; + width = (width & -4)*cn; VecUpdate updateOp; for( i = 0; i <= width - 16; i += 16 ) @@ -103,7 +103,7 @@ template struct MorphRowIVec _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 ) @@ -130,10 +130,10 @@ template struct MorphRowFVec 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 ) -- 2.39.2