# ----------------------------------------------------------------------------\r
\r
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)\r
-\r
+# Add these standard paths to the search paths for FIND_LIBRARY\r
+# to find libraries from these locations first\r
+if(UNIX)\r
+ set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /lib /usr/lib)\r
+endif()\r
# it _must_ go before PROJECT(OpenCV) in order to work\r
if (NOT CMAKE_INSTALL_PREFIX)\r
if (WIN32)\r
set(CMAKE_USE_RELATIVE_PATHS ON CACHE INTERNAL "" FORCE)\r
endif()\r
\r
+#set(CMAKE_C_COMPILER "/opt/BullseyeCoverage/bin/gcc")\r
+#set(CMAKE_CXX_COMPILER "/opt/BullseyeCoverage/bin/g++")\r
+#set(CMAKE_CXX_COMPILER_INIT "/opt/BullseyeCoverage/bin/gcc")\r
+\r
# --------------------------------------------------------------\r
# Indicate CMake 2.7 and above that we don't want to mix relative\r
# and absolute paths in linker lib lists.\r
# ----------------------------------------------------------------------------\r
# Current version number:\r
# ----------------------------------------------------------------------------\r
-set(OPENCV_VERSION "1.1.1")\r
+set(OPENCV_VERSION "2.1.0")\r
\r
string(REGEX MATCHALL "[0-9]" OPENCV_VERSION_PARTS "${OPENCV_VERSION}")\r
\r
set(OPENCV_SOVERSION "${OPENCV_VERSION_MAJOR}.${OPENCV_VERSION_MINOR}")\r
\r
if(WIN32)\r
- # Postfix of DLLs:\r
- set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")\r
- set(OPENCV_DEBUG_POSTFIX d)\r
+ # Postfix of DLLs:\r
+ set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")\r
+ set(OPENCV_DEBUG_POSTFIX d)\r
else()\r
- # Postfix of so's:\r
- #set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")\r
- set(OPENCV_DLLVERSION "")\r
- set(OPENCV_DEBUG_POSTFIX)\r
+ # Postfix of so's:\r
+ #set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")\r
+ set(OPENCV_DLLVERSION "")\r
+ set(OPENCV_DEBUG_POSTFIX)\r
endif()\r
\r
\r
+# ----------------------------------------------------------------------------\r
+# Build static or dynamic libs?\r
+# ----------------------------------------------------------------------------\r
+# 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
+ELSE(BUILD_SHARED_LIBS)\r
+ SET(OPENCV_BUILD_SHARED_LIB 0)\r
+ENDIF(BUILD_SHARED_LIBS)\r
+\r
# ----------------------------------------------------------------------------\r
# Variables for cvconfig.h.cmake\r
# ----------------------------------------------------------------------------\r
\r
list(GET CMAKE_OPENCV_GCC_VERSIONS 0 CMAKE_OPENCV_GCC_VERSION_MAJOR)\r
list(GET CMAKE_OPENCV_GCC_VERSIONS 1 CMAKE_OPENCV_GCC_VERSION_MINOR)\r
-\r
+ \r
set(CMAKE_OPENCV_GCC_VERSION ${CMAKE_OPENCV_GCC_VERSION_MAJOR}${CMAKE_OPENCV_GCC_VERSION_MINOR})\r
- message(STATUS "Detected version of GNU GCC: ${CMAKE_OPENCV_GCC_VERSION}")\r
+ math(EXPR CMAKE_OPENCV_GCC_VERSION_NUM "${CMAKE_OPENCV_GCC_VERSION_MAJOR}*100 + ${CMAKE_OPENCV_GCC_VERSION_MINOR}")\r
+ message(STATUS "Detected version of GNU GCC: ${CMAKE_OPENCV_GCC_VERSION} (${CMAKE_OPENCV_GCC_VERSION_NUM})")\r
endif()\r
\r
# ----------------------------------------------------------------------------\r
-# CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC..\r
+# Detect Intel ICC compiler -- for -fPIC in 3rdparty ( UNIX ONLY ):\r
+# see include/opencv/cxtypes.h file for related ICC & CV_ICC defines.\r
+# NOTE: The system needs to determine if the '-fPIC' option needs to be added\r
+# for the 3rdparty static libs being compiled. The CMakeLists.txt files\r
+# in 3rdparty use the CV_ICC definition being set here to determine if\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
+endif()\r
+\r
+# ----------------------------------------------------------------------------\r
+# CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC..\r
# ----------------------------------------------------------------------------\r
\r
# Build/install (or not) some apps:\r
# Build 3rdparty libraries under unix\r
# ===================================================\r
if(WIN32 OR APPLE)\r
- set(OPENCV_BUILD_3RDPARTY_LIBS TRUE CACHE BOOL "Build 3rd party libraries")\r
+ set(OPENCV_BUILD_3RDPARTY_LIBS TRUE CACHE BOOL "Build 3rd party libraries")\r
else()\r
- set(OPENCV_BUILD_3RDPARTY_LIBS FALSE CACHE BOOL "Build 3rd party libraries")\r
+ set(OPENCV_BUILD_3RDPARTY_LIBS FALSE CACHE BOOL "Build 3rd party libraries")\r
endif()\r
\r
include(OpenCVPCHSupport.cmake REQUIRED)\r
include(CheckIncludeFile)\r
endif()\r
\r
-# Default value for OPENMP:\r
-# MSVC: Yes\r
-# Others: No\r
-# ===================================================\r
-if(MSVC)\r
- set(DEFAULT_ENABLE_OPENMP ON)\r
-else()\r
- set(DEFAULT_ENABLE_OPENMP OFF)\r
-endif()\r
-\r
-set(ENABLE_OPENMP ${DEFAULT_ENABLE_OPENMP} CACHE BOOL "")\r
+#if(MSVC)\r
+# set(DEFAULT_ENABLE_OPENMP ON)\r
+#else()\r
+# set(DEFAULT_ENABLE_OPENMP OFF)\r
+#endif()\r
+#set(ENABLE_OPENMP ${DEFAULT_ENABLE_OPENMP} CACHE BOOL "")\r
\r
if(CMAKE_COMPILER_IS_GNUCXX)\r
set(ENABLE_PROFILING OFF CACHE BOOL "Enable profiling in the GCC compiler (Add flags: -g -pg)")\r
set(USE_O2 ON CACHE BOOL "Enable -O2 for GCC")\r
set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")\r
endif()\r
+ \r
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES amd64*)\r
- set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")\r
- set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")\r
- set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")\r
- set(USE_SSE ON CACHE BOOL "Enable SSE for GCC")\r
- set(USE_SSE2 ON CACHE BOOL "Enable SSE2 for GCC")\r
- set(USE_SSE3 ON CACHE BOOL "Enable SSE3 for GCC")\r
+ set(X86_64 1)\r
endif()\r
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86_64*)\r
- set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")\r
- set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")\r
- set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")\r
- set(USE_SSE ON CACHE BOOL "Enable SSE for GCC")\r
- set(USE_SSE2 ON CACHE BOOL "Enable SSE2 for GCC")\r
- set(USE_SSE3 ON CACHE BOOL "Enable SSE3 for GCC")\r
+ set(X86_64 1)\r
endif()\r
- if(${CMAKE_SYSTEM_PROCESSOR} MATCHES powerpc*)\r
- set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")\r
- set(USE_POWERPC ON CACHE BOOL "Enable PowerPC for GCC")\r
- endif ()\r
+ \r
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i686*)\r
+ set(X86 1)\r
+ endif()\r
+ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i386*)\r
+ set(X86 1)\r
+ endif()\r
+ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86*)\r
+ set(X86 1)\r
+ endif()\r
+ \r
+ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES powerpc*)\r
set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")\r
- set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")\r
- set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")\r
- set(USE_SSE OFF CACHE BOOL "Enable SSE for GCC")\r
- set(USE_SSE2 OFF CACHE BOOL "Enable SSE2 for GCC")\r
- set(USE_SSE3 OFF CACHE BOOL "Enable SSE3 for GCC")\r
- # SSE/SSE2 might probably be not available for some old AMD or VIA processors\r
+ set(ENABLE_POWERPC ON CACHE BOOL "Enable PowerPC for GCC")\r
endif ()\r
- if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86)\r
+ \r
+ if(X86 OR X86_64)\r
+ # enable everything, since the available set of instructions is checked at runtime\r
set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")\r
set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")\r
- set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")\r
- set(USE_SSE OFF CACHE BOOL "Enable SSE for GCC")\r
- set(USE_SSE2 OFF CACHE BOOL "Enable SSE2 for GCC")\r
- set(USE_SSE3 OFF CACHE BOOL "Enable SSE3 for GCC")\r
- # SSE/SSE2 might probably be not available for some old AMD or VIA processors\r
- endif ()\r
+ set(ENABLE_SSE ON CACHE BOOL "Enable SSE for GCC")\r
+ set(ENABLE_SSE2 ON CACHE BOOL "Enable SSE2 for GCC")\r
+ set(ENABLE_SSE3 OFF CACHE BOOL "Enable SSE3 for GCC")\r
+ set(ENABLE_SSSE3 OFF CACHE BOOL "Enable SSSE3 for GCC")\r
+ #set(ENABLE_SSE4_1 OFF CACHE BOOL "Enable SSE4.1 for GCC")\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
+set(WITH_PNG ON CACHE BOOL "Include PNG support")\r
+set(WITH_JPEG ON CACHE BOOL "Include JPEG support")\r
+set(WITH_JASPER ON CACHE BOOL "Include JPEG2K support")\r
+set(WITH_TIFF ON CACHE BOOL "Include TIFF support")\r
+\r
if(UNIX)\r
- set(WITH_PNG ON CACHE BOOL "Include PNG support")\r
- set(WITH_JPEG ON CACHE BOOL "Include JPEG support")\r
- set(WITH_JASPER ON CACHE BOOL "Include JPEG2K support")\r
- set(WITH_TIFF ON CACHE BOOL "Include TIFF support")\r
set(WITH_FFMPEG ON CACHE BOOL "Include FFMPEG support")\r
- set(WITH_UNICAP ON CACHE BOOL "Include Unicap support")\r
- set(WITH_GTK ON CACHE BOOL "Include GTK support")\r
- set(WITH_GSTREAMER ON CACHE BOOL "Include Gstreamer support")\r
- set(WITH_1394 ON CACHE BOOL "Include IEEE1394 support")\r
- set(WITH_V4L ON CACHE BOOL "Include Video 4 Linux support")\r
- set(WITH_XINE ON CACHE BOOL "Include Xine 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
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
+endif()\r
+\r
+set(WITH_TBB OFF CACHE BOOL "Include TBB support")\r
+\r
# ===================================================\r
# Macros that checks if module have been installed.\r
# After it adds module to build and define\r
endif()\r
if(WITH_GSTREAMER)\r
CHECK_MODULE(gstreamer-base-0.10 HAVE_GSTREAMER)\r
+ CHECK_MODULE(gstreamer-app-0.10 HAVE_GSTREAMER_APP)\r
+ CHECK_MODULE(gstreamer-video-0.10 HAVE_GSTREAMER)\r
else()\r
set(HAVE_GSTREAMER FALSE)\r
endif()\r
else()\r
set(HAVE_UNICAP FALSE)\r
endif()\r
+ \r
+ if(WITH_PVAPI)\r
+ find_path(PVAPI_INCLUDE_PATH "PvApi.h"\r
+ PATHS "/usr/include" "/usr/local/include"\r
+ DOC "The path to PvAPI header")\r
+ if(PVAPI_INCLUDE_PATH)\r
+ set(HAVE_PVAPI 1)\r
+ endif()\r
+ endif()\r
\r
+ set(HAVE_FFMPEG 0)\r
if(WITH_FFMPEG)\r
CHECK_MODULE(libavcodec HAVE_FFMPEG_CODEC)\r
CHECK_MODULE(libavformat HAVE_FFMPEG_FORMAT)\r
CHECK_MODULE(libavutil HAVE_FFMPEG_UTIL)\r
CHECK_MODULE(libswscale HAVE_FFMPEG_SWSCALE)\r
CHECK_INCLUDE_FILE(libavformat/avformat.h HAVE_GENTOO_FFMPEG)\r
- if(NOT HAVE_GENTOO_FFMPEG)\r
- if(EXISTS /usr/include/ffmpeg/libavformat/avformat.h)\r
+ CHECK_INCLUDE_FILE(ffmpeg/avformat.h HAVE_FFMPEG_FFMPEG)\r
+ if(NOT HAVE_GENTOO_FFMPEG AND NOT HAVE_FFMPEG_FFMPEG)\r
+ if(EXISTS /usr/include/ffmpeg/libavformat/avformat.h OR HAVE_FFMPEG_SWSCALE)\r
set(HAVE_GENTOO_FFMPEG 1)\r
endif()\r
endif()\r
if(HAVE_FFMPEG_CODEC AND HAVE_FFMPEG_FORMAT AND HAVE_FFMPEG_UTIL)\r
- set(HAVE_FFMPEG 1)\r
+ if(HAVE_FFMPEG_SWSCALE OR NOT HAVE_GENTOO_FFMPEG)\r
+ set(HAVE_FFMPEG 1)\r
+ endif() \r
+ endif()\r
+ # Find the bzip2 library because it is required on some systems\r
+ FIND_LIBRARY(BZIP2_LIBRARIES NAMES bz2 bzip2)\r
+ if(NOT BZIP2_LIBRARIES)\r
+ # Do an other trial\r
+ FIND_FILE(BZIP2_LIBRARIES NAMES libbz2.so.1 PATHS /lib)\r
endif()\r
- else()\r
- set(HAVE_FFMPEG FALSE)\r
endif()\r
\r
if(WITH_1394)\r
include(FindJasper)\r
else()\r
set(JASPER_FOUND FALSE)\r
- endif() \r
+ endif()\r
if(WITH_JPEG)\r
include(FindJPEG)\r
else()\r
endif()\r
endif()\r
\r
-set(BUILD_PYTHON_SUPPORT OFF CACHE BOOL "Build with Python support")\r
+set(BUILD_NEW_PYTHON_SUPPORT ON CACHE BOOL "Build with Python support")\r
+set(BUILD_SWIG_PYTHON_SUPPORT OFF CACHE BOOL "Build with older SWIG-based Python support")\r
set(BUILD_OCTAVE_SUPPORT OFF CACHE BOOL "Build with Octave support")\r
\r
-find_package(SWIG)\r
-if(SWIG_FOUND)\r
-\r
+if(BUILD_SWIG_PYTHON_SUPPORT OR BUILD_NEW_PYTHON_SUPPORT)\r
find_package(PythonInterp)\r
find_package(PythonLibs)\r
- \r
+\r
# cmake 2.4 (at least on Ubuntu 8.04 (hardy)) don't define PYTHONLIBS_FOUND\r
if(NOT PYTHONLIBS_FOUND AND PYTHON_INCLUDE_PATH)\r
set(PYTHONLIBS_FOUND ON)\r
endif(NOT PYTHONLIBS_FOUND AND PYTHON_INCLUDE_PATH)\r
+ \r
+ execute_process(COMMAND ${PYTHON_EXECUTABLE} --version\r
+ ERROR_VARIABLE PYTHON_VERSION_FULL\r
+ OUTPUT_STRIP_TRAILING_WHITESPACE)\r
+\r
+ string(REGEX MATCH "[0-9].[0-9]" PYTHON_VERSION_MAJOR_MINOR "${PYTHON_VERSION_FULL}")\r
+ if(UNIX)\r
+ set(PYTHON_PLUGIN_INSTALL_PATH lib/python${PYTHON_VERSION_MAJOR_MINOR}/site-packages/opencv)\r
+ set(PYTHON_PACKAGES_PATH lib/python${PYTHON_VERSION_MAJOR_MINOR}/site-packages)\r
+ endif()\r
+ if(WIN32)\r
+ get_filename_component(PYTHON_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${PYTHON_VERSION_MAJOR_MINOR}\\InstallPath]" ABSOLUTE CACHE)\r
+ set(PYTHON_PLUGIN_INSTALL_PATH "${PYTHON_PATH}/Lib/site-packages/opencv")\r
+ set(PYTHON_PACKAGES_PATH "${PYTHON_PATH}/Lib/site-packages")\r
+ endif()\r
+\r
+ # Attempt to discover the NumPy include directory. If this succeeds, build with NumPy\r
+\r
+ execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import numpy.distutils; print numpy.distutils.misc_util.get_numpy_include_dirs()[0]"\r
+ RESULT_VARIABLE PYTHON_NUMPY_PROCESS\r
+ OUTPUT_VARIABLE PYTHON_NUMPY_INCLUDE_DIRS\r
+ OUTPUT_STRIP_TRAILING_WHITESPACE)\r
+ if(PYTHON_NUMPY_PROCESS EQUAL 0)\r
+ set(PYTHON_USE_NUMPY 1)\r
+ add_definitions(-D PYTHON_USE_NUMPY=1)\r
+ include_directories(AFTER ${PYTHON_NUMPY_INCLUDE_DIRS})\r
+ message(STATUS " Use INCLUDE: ${PYTHON_NUMPY_INCLUDE_DIRS}")\r
+ else()\r
+ set(PYTHON_USE_NUMPY 0)\r
+ endif()\r
+\r
+\r
+endif()\r
\r
- # Build with python if installed:\r
- # ===================================================\r
- if(PYTHONLIBS_FOUND AND BUILD_PYTHON_SUPPORT)\r
- execute_process(COMMAND ${PYTHON_EXECUTABLE} --version\r
- ERROR_VARIABLE PYTHON_VERSION_FULL\r
- OUTPUT_STRIP_TRAILING_WHITESPACE)\r
- \r
- string(REGEX MATCH "[0-9].[0-9]" PYTHON_VERSION_MAJOR_MINOR "${PYTHON_VERSION_FULL}")\r
- if(UNIX)\r
- set(PYTHON_PLUGIN_INSTALL_PATH lib/python${PYTHON_VERSION_MAJOR_MINOR}/site-packages/opencv)\r
+if(PYTHONLIBS_FOUND AND BUILD_SWIG_PYTHON_SUPPORT)\r
+ find_package(SWIG)\r
+endif()\r
+\r
+############################### TBB ################################\r
+\r
+if (WITH_TBB)\r
+ if (UNIX AND NOT APPLE)\r
+ PKG_CHECK_MODULES(TBB tbb)\r
+ message(STATUS "TBB detected: ${TBBLIB_FOUND}")\r
+ \r
+ if (TBB_FOUND) \r
+ set(HAVE_TBB 1)\r
+ if(NOT "${TBB_INCLUDE_DIRS}" STREQUAL "")\r
+ include_directories("${TBB_INCLUDE_DIRS}")\r
+ endif()\r
+ link_directories("${TBB_LIBRARY_DIRS}")\r
+ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${TBB_LIBRARIES})\r
+ else()\r
+ set(TBB_DEFAULT_INCLUDE_DIRS\r
+ "/opt/intel/tbb"\r
+ "/usr/local/include"\r
+ "/usr/include") \r
endif()\r
- if(WIN32)\r
- get_filename_component(PYTHON_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${PYTHON_VERSION_MAJOR_MINOR}\\InstallPath]" ABSOLUTE CACHE)\r
- set(PYTHON_PLUGIN_INSTALL_PATH "${PYTHON_PATH}/Lib/site-packages/opencv")\r
+ endif() \r
+ if (APPLE)\r
+ set(TBB_DEFAULT_INCLUDE_DIRS\r
+ "/usr/include"\r
+ "/usr/local/include") \r
+ endif() \r
+ if (WIN32)\r
+ set(TBB_DEFAULT_INCLUDE_DIRS\r
+ "C:/Program Files/Intel/TBB"\r
+ "C:/Program Files (x86)/Intel/TBB") \r
+ endif() \r
+ if (NOT HAVE_TBB)\r
+ find_path(TBB_INCLUDE_DIR "tbb/tbb.h"\r
+ PATHS TBB_DEFAULT_INCLUDE_DIRS\r
+ DOC "The path to TBB headers")\r
+ if (TBB_INCLUDE_DIR)\r
+ if (UNIX)\r
+ set(TBB_LIB_DIR "${TBB_INCLUDE_DIR}/../lib" CACHE PATH "Full path of TBB library directory")\r
+ link_directories("${TBB_LIB_DIR}")\r
+ endif()\r
+ if (APPLE)\r
+ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} libtbb.dylib)\r
+ elseif (UNIX)\r
+ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} tbb)\r
+ elseif (WIN32)\r
+ if (CMAKE_COMPILER_IS_GNUCXX)\r
+ set(TBB_LIB_DIR "${TBB_INCLUDE_DIR}/../lib" CACHE PATH "Full path of TBB library directory")\r
+ link_directories("${TBB_LIB_DIR}")\r
+ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} tbb)\r
+ else()\r
+ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES amd64*)\r
+ set(X86_64 1)\r
+ endif()\r
+ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86_64*)\r
+ set(X86_64 1)\r
+ endif()\r
+ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i686*)\r
+ set(X86 1)\r
+ endif()\r
+ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i386*)\r
+ set(X86 1)\r
+ endif()\r
+ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86*)\r
+ set(X86 1)\r
+ endif()\r
+ \r
+ set(_TBB_LIB_PATH "${TBB_INCLUDE_DIR}/../lib")\r
+ if (X86_64)\r
+ set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/intel64")\r
+ elseif(X86)\r
+ set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/ia32")\r
+ endif()\r
+ if (MSVC80)\r
+ set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/vc8")\r
+ elseif(MSVC90)\r
+ set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/vc9")\r
+ endif()\r
+ set(TBB_LIB_DIR "${_TBB_LIB_PATH}" CACHE PATH "Full path of TBB library directory")\r
+ link_directories("${TBB_LIB_DIR}")\r
+ endif()\r
+ endif()\r
+ \r
+ set(HAVE_TBB 1)\r
+ if(NOT "${TBB_INCLUDE_DIR}" STREQUAL "")\r
+ include_directories("${TBB_INCLUDE_DIR}")\r
+ endif()\r
endif()\r
endif()\r
-\r
endif()\r
\r
-if(WIN32)\r
-\r
+############################### IPP ################################\r
set(IPP_FOUND)\r
+set(OPENCV_LOADER_PATH)\r
+\r
+if(UNIX)\r
+if(APPLE)\r
+ set(OPENCV_LOADER_PATH DYLD_LIBRARY_PATH)\r
+else()\r
+ set(OPENCV_LOADER_PATH LD_LIBRARY_PATH)\r
+endif()\r
+endif()\r
+\r
foreach(v "6.1" "6.0" "5.3" "5.2" "5.1")\r
if(NOT IPP_FOUND)\r
- find_path(IPP_PATH "ippi-${v}.dll"\r
- PATHS ${CMAKE_PROGRAM_PATH} ${CMAKE_SYSTEM_PROGRAM_PATH}\r
- DOC "The path to IPP DLLs")\r
+ if(WIN32)\r
+ find_path(IPP_PATH "ippi-${v}.dll"\r
+ PATHS ${CMAKE_PROGRAM_PATH} ${CMAKE_SYSTEM_PROGRAM_PATH}\r
+ DOC "The path to IPP dynamic libraries")\r
+ if(NOT IPP_PATH)\r
+ find_path(IPP_PATH "ippiem64t-${v}.dll"\r
+ PATHS ${CMAKE_PROGRAM_PATH} ${CMAKE_SYSTEM_PROGRAM_PATH}\r
+ DOC "The path to IPP dynamic libraries")\r
+ endif()\r
+ endif()\r
+ if(UNIX)\r
+ find_path(IPP_PATH "libippi${CMAKE_SHARED_LIBRARY_SUFFIX}.${v}"\r
+ PATHS ${CMAKE_LIBRARY_PATH} ${CMAKE_SYSTEM_LIBRARY_PATH} ENV ${OPENCV_LOADER_PATH}\r
+ DOC "The path to IPP dynamic libraries")\r
+ if(NOT IPP_PATH)\r
+ find_path(IPP_PATH "libippiem64t${CMAKE_SHARED_LIBRARY_SUFFIX}.${v}"\r
+ PATHS ${CMAKE_LIBRARY_PATH} ${CMAKE_SYSTEM_LIBRARY_PATH} ENV ${OPENCV_LOADER_PATH}\r
+ DOC "The path to IPP dynamic libraries")\r
+ endif()\r
+ endif()\r
if(IPP_PATH)\r
file(GLOB IPP_HDRS "${IPP_PATH}/../include")\r
if(IPP_HDRS)\r
endforeach()\r
\r
message(STATUS "IPP detected: ${IPP_FOUND}")\r
+\r
+if(WIN32 AND NOT MSVC)\r
+ set(IPP_FOUND)\r
+endif()\r
+\r
set(USE_IPP ${IPP_FOUND} CACHE BOOL "Use IPP when available")\r
\r
if(IPP_FOUND AND USE_IPP)\r
add_definitions(-DHAVE_IPP)\r
include_directories("${IPP_PATH}/../include")\r
link_directories("${IPP_PATH}/../lib")\r
- set(IPP_LIBS ippsmerged.lib ippsemerged.lib ippimerged.lib ippiemerged.lib\r
- ippvmmerged.lib ippvmemerged.lib ippccmerged.lib ippccemerged.lib\r
- ippcvmerged.lib ippcvemerged.lib ippcorel.lib)\r
+ \r
+ file(GLOB em64t_files "${IPP_PATH}/../lib/*em64t*")\r
+ set(IPP_ARCH)\r
+ if(em64t_files)\r
+ set(IPP_ARCH "em64t")\r
+ endif()\r
+ \r
+ set(A ${CMAKE_STATIC_LIBRARY_PREFIX})\r
+ set(B ${IPP_ARCH}${CMAKE_STATIC_LIBRARY_SUFFIX})\r
+ if(WIN32)\r
+ set(L l)\r
+ else()\r
+ set(L)\r
+ endif()\r
+ set(IPP_LIBS ${A}ippsmerged${B} ${A}ippsemerged${B}\r
+ ${A}ippimerged${B} ${A}ippiemerged${B}\r
+ ${A}ippvmmerged${B} ${A}ippvmemerged${B}\r
+ ${A}ippccmerged${B} ${A}ippccemerged${B}\r
+ ${A}ippcvmerged${B} ${A}ippcvemerged${B}\r
+ ${A}ippcore${IPP_ARCH}${L}${CMAKE_STATIC_LIBRARY_SUFFIX})\r
endif()\r
\r
-endif()\r
\r
+################## LATEX ##################\r
set(BUILD_LATEX_DOCS OFF CACHE BOOL "Build LaTeX OpenCV Documentation")\r
\r
# ----------------------------------------------------------------------------\r
-# UPDATE CONFIG FILES & SCRIPTS:\r
+# UPDATE CONFIG FILES & SCRIPTS:\r
#\r
# CONFIGURE_FILE(InputFile OutputFile [COPYONLY] [ESCAPE_QUOTES] [@ONLY])\r
# If @ONLY is specified, only variables of the form @VAR@ will be\r
)\r
\r
# ----------------------------------------------------------------------------\r
-# Set the maximum level of warnings:\r
+# Set the maximum level of warnings:\r
# ----------------------------------------------------------------------------\r
# Should be set to true for development\r
set(OPENCV_WARNINGS_ARE_ERRORS OFF CACHE BOOL "Treat warnings as errors")\r
\r
-# Whole program optimization?\r
-set(OPENCV_WHOLE_PROGRAM_OPTIMIZATION OFF CACHE BOOL "Flags for whole program optimization.")\r
-\r
set(EXTRA_C_FLAGS "")\r
set(EXTRA_C_FLAGS_RELEASE "")\r
set(EXTRA_C_FLAGS_DEBUG "")\r
if(MSVC80)\r
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} /Wp64")\r
endif()\r
+ #if(MSVC90)\r
+ # set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} /D _BIND_TO_CURRENT_CRT_VERSION=1 /D _BIND_TO_CURRENT_VCLIBS_VERSION=1")\r
+ #endif()\r
\r
set(EXTRA_EXE_LINKER_FLAGS_RELEASE "${EXTRA_EXE_LINKER_FLAGS_RELEASE} /debug")\r
\r
- # Whole program optimization\r
- if(OPENCV_WHOLE_PROGRAM_OPTIMIZATION AND MSVC_VERSION GREATER 1300)\r
- set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /GL")\r
- set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")\r
- set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG")\r
- endif()\r
-\r
- if(ENABLE_OPENMP)\r
- set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /openmp")\r
- endif()\r
+ #if(ENABLE_OPENMP)\r
+ # set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /openmp")\r
+ #endif()\r
\r
# Remove unreferenced functions: function level linking\r
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} /Gy")\r
endif()\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
+\r
# High level of warnings.\r
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wall")\r
\r
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Werror")\r
endif()\r
\r
- # Whole program optimization\r
- if(OPENCV_WHOLE_PROGRAM_OPTIMIZATION)\r
- set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -fwhole-program --combine")\r
- endif()\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
\r
# Other optimizations\r
if(USE_OMIT_FRAME_POINTER)\r
if(USE_FAST_MATH)\r
set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -ffast-math")\r
endif()\r
- if(USE_POWERPC)\r
+ if(ENABLE_POWERPC)\r
set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -mcpu=G3 -mtune=G5")\r
endif()\r
- if(USE_MMX)\r
- set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -mmmx")\r
- endif()\r
- # SSE should be disabled under MingW because it generates compiler errors\r
- if(USE_SSE)\r
+ if(ENABLE_SSE)\r
set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse")\r
endif()\r
- # SSE2 should be disabled under MingW because it generates compiler errors\r
- if(USE_SSE2)\r
+ if(ENABLE_SSE2)\r
set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse2")\r
endif()\r
- # SSE3 should be disabled under MingW because it generates compiler errors\r
- if(USE_SSE3 AND NOT MINGW)\r
- set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse3")\r
+ # SSE3 and further should be disabled under MingW because it generates compiler errors\r
+ if(NOT MINGW)\r
+ if(ENABLE_SSE3)\r
+ set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse3")\r
+ endif()\r
+ if(${CMAKE_OPENCV_GCC_VERSION_NUM} GREATER 402)\r
+ set(HAVE_GCC43_OR_NEWER 1)\r
+ endif()\r
+ if(HAVE_GCC43_OR_NEWER OR APPLE)\r
+ if(ENABLE_SSSE3)\r
+ set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -mssse3")\r
+ endif()\r
+ #if(ENABLE_SSE4_1)\r
+ # set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse4.1")\r
+ #endif()\r
+ endif()\r
+ endif()\r
+ \r
+ if(X86 OR X86_64)\r
+ if(NOT APPLE)\r
+ if(${CMAKE_SIZEOF_VOID_P} EQUAL 4)\r
+ set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -mfpmath=387")\r
+ endif()\r
+ endif()\r
endif()\r
\r
# Profiling?\r
endif()\r
\r
# Parallel mode\r
- if(ENABLE_OPENMP)\r
- set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -D_GLIBCXX_PARALLEL -fopenmp")\r
- endif()\r
+ #if(ENABLE_OPENMP)\r
+ # set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -D_GLIBCXX_PARALLEL -fopenmp")\r
+ # set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} gomp)\r
+ #endif()\r
\r
set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -DNDEBUG")\r
set(EXTRA_C_FLAGS_DEBUG "${EXTRA_C_FLAGS_DEBUG} -O0 -DDEBUG -D_DEBUG")\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
+ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} stdc++)\r
+ endif()\r
+\r
+ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} flann zlib opencv_lapack)\r
+endif()\r
+\r
\r
# Add user supplied extra options (optimization, etc...)\r
# ==========================================================\r
-set(OPENCV_EXTRA_C_FLAGS ${EXTRA_C_FLAGS} CACHE STRING "Extra compiler options")\r
-set(OPENCV_EXTRA_C_FLAGS_RELEASE ${EXTRA_C_FLAGS_RELEASE} CACHE STRING "Extra compiler options for Release build")\r
-set(OPENCV_EXTRA_C_FLAGS_DEBUG ${EXTRA_C_FLAGS_DEBUG} CACHE STRING "Extra compiler options for Debug build")\r
-set(OPENCV_EXTRA_EXE_LINKER_FLAGS ${EXTRA_EXE_LINKER_FLAGS} CACHE STRING "Extra linker flags" FORCE)\r
-set(OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE ${EXTRA_EXE_LINKER_FLAGS_RELEASE} CACHE STRING "Extra linker flags for Release build" FORCE)\r
-set(OPENCV_EXTRA_EXE_LINKER_FLAGS_DEBUG ${EXTRA_EXE_LINKER_FLAGS_DEBUG} CACHE STRING "Extra linker flags for Debug build" FORCE)\r
-\r
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OPENCV_EXTRA_C_FLAGS}")\r
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OPENCV_EXTRA_C_FLAGS}")\r
-set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${OPENCV_EXTRA_C_FLAGS_RELEASE}")\r
-set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${OPENCV_EXTRA_C_FLAGS_RELEASE}")\r
-set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${OPENCV_EXTRA_C_FLAGS_DEBUG}")\r
-set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${OPENCV_EXTRA_C_FLAGS_DEBUG}")\r
-set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OPENCV_EXTRA_EXE_LINKER_FLAGS}")\r
-set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE}")\r
-set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${OPENCV_EXTRA_EXE_LINKER_FLAGS_DEBUG}")\r
+set(OPENCV_EXTRA_C_FLAGS "" CACHE STRING "Extra compiler options")\r
+set(OPENCV_EXTRA_C_FLAGS_RELEASE "" CACHE STRING "Extra compiler options for Release build")\r
+set(OPENCV_EXTRA_C_FLAGS_DEBUG "" CACHE STRING "Extra compiler options for Debug build")\r
+set(OPENCV_EXTRA_EXE_LINKER_FLAGS "" CACHE STRING "Extra linker flags" FORCE)\r
+set(OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE "" CACHE STRING "Extra linker flags for Release build" FORCE)\r
+set(OPENCV_EXTRA_EXE_LINKER_FLAGS_DEBUG "" CACHE STRING "Extra linker flags for Debug build" FORCE)\r
+\r
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS} ${OPENCV_EXTRA_C_FLAGS}")\r
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_C_FLAGS} ${OPENCV_EXTRA_C_FLAGS}")\r
+set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${EXTRA_C_FLAGS_RELEASE} ${OPENCV_EXTRA_C_FLAGS_RELEASE}")\r
+set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${EXTRA_C_FLAGS_RELEASE} ${OPENCV_EXTRA_C_FLAGS_RELEASE}")\r
+set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${EXTRA_C_FLAGS_DEBUG} ${OPENCV_EXTRA_C_FLAGS_DEBUG}")\r
+set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${EXTRA_C_FLAGS_DEBUG} ${OPENCV_EXTRA_C_FLAGS_DEBUG}")\r
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${EXTRA_EXE_LINKER_FLAGS} ${OPENCV_EXTRA_EXE_LINKER_FLAGS}")\r
+set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${EXTRA_EXE_LINKER_FLAGS_RELEASE} ${OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE}")\r
+set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${EXTRA_EXE_LINKER_FLAGS_DEBUG} ${OPENCV_EXTRA_EXE_LINKER_FLAGS_DEBUG}")\r
\r
# In case of Makefiles if the user does not setup CMAKE_BUILD_TYPE, assume it's Release:\r
if (${CMAKE_GENERATOR} MATCHES ".*Makefiles")\r
string(REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")\r
string(REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")\r
string(REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")\r
+\r
+ # allow extern "C" functions throw exceptions\r
+ string(REPLACE "/EHsc" "/EHsc-" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")\r
+ string(REPLACE "/EHsc" "/EHsc-" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")\r
+ string(REPLACE "/EHsc" "/EHsc-" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")\r
+ string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")\r
+ string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")\r
+ string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")\r
endif()\r
\r
if("${CMAKE_CONFIGURE_LDFLAGS}")\r
endif("${CMAKE_CONFIGURE_LDFLAGS}")\r
\r
# ----------------------------------------------------------------------------\r
-# PROCESS SUBDIRECTORIES:\r
+# PROCESS SUBDIRECTORIES:\r
# ----------------------------------------------------------------------------\r
# Save libs and executables in the same place\r
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE PATH "Output directory for libraries" )\r
set(OPENCV_DOC_INSTALL_PATH share/opencv/doc)\r
endif()\r
\r
-#-----------------------------------\r
-# Subdirectories:\r
-#-----------------------------------\r
-add_subdirectory(src)\r
-add_subdirectory(apps)\r
-\r
-if(BUILD_LATEX_DOCS)\r
- include(OpenCVFindLATEX.cmake REQUIRED)\r
- \r
- if(PDFLATEX_COMPILER)\r
- message(STATUS "PDF LaTeX found!")\r
- endif()\r
-endif()\r
-\r
-add_subdirectory(doc)\r
-add_subdirectory(data)\r
-\r
-if(BUILD_EXAMPLES OR INSTALL_PYTHON_EXAMPLES OR INSTALL_OCTAVE_EXAMPLES)\r
- add_subdirectory(samples)\r
-endif()\r
-\r
-if(BUILD_TESTS)\r
- enable_testing()\r
- add_subdirectory(tests)\r
-endif()\r
-\r
-add_subdirectory(interfaces)\r
-add_subdirectory(3rdparty)\r
-\r
# --------------------------------------------------------------------------------------------\r
# Installation for CMake Module: OpenCVConfig.cmake\r
# Part 1/3: ${BIN_DIR}/OpenCVConfig.cmake -> For use *without* "make install"\r
# Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages\r
# -------------------------------------------------------------------------------------------\r
if(WIN32)\r
- # Set CMAKE_INCLUDE_DIRS_CONFIGCMAKE to the list of include directories:\r
- \r
- # This will expand to, for example, <program files>/OpenCV 1.1.0/include\r
- set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/include\" \"\${THIS_OPENCV_CONFIG_PATH}/include/opencv\"")\r
+ # Set CMAKE_INCLUDE_DIRS_CONFIGCMAKE to the list of include directories:\r
+ \r
+ # This will expand to, for example, <program files>/OpenCV 1.1.0/include\r
+ set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/include\" \"\${THIS_OPENCV_CONFIG_PATH}/include/opencv\"")\r
\r
- # This will expand to, for example, <program files>/OpenCV 1.1.0/lib\r
- set(CMAKE_LIB_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/lib\"")\r
+ # This will expand to, for example, <program files>/OpenCV 1.1.0/lib\r
+ set(CMAKE_LIB_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/lib\"")\r
\r
- #exec_program(${CMAKE_COMMAND} ARGS "-E make_directory \"${CMAKE_BINARY_DIR}/win-install/\"")\r
- exec_program(mkdir ARGS "-p \"${CMAKE_BINARY_DIR}/win-install/\"")\r
- configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" IMMEDIATE @ONLY)\r
+ #exec_program(${CMAKE_COMMAND} ARGS "-E make_directory \"${CMAKE_BINARY_DIR}/win-install/\"")\r
+ exec_program(mkdir ARGS "-p \"${CMAKE_BINARY_DIR}/win-install/\"")\r
+ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" IMMEDIATE @ONLY)\r
endif()\r
\r
\r
# libdir=${exec_prefix}/lib\r
# includedir=${prefix}/include/opencv\r
# -------------------------------------------------------------------------------------------\r
-set(prefix ${CMAKE_INSTALL_PREFIX})\r
-set(exec_prefix "\${prefix}")\r
-set(libdir "\${exec_prefix}/lib")\r
-set(includedir "\${prefix}/include")\r
+set(prefix ${CMAKE_INSTALL_PREFIX})\r
+set(exec_prefix "\${prefix}")\r
+set(libdir "\${exec_prefix}/lib")\r
+set(includedir "\${prefix}/include")\r
set(VERSION ${OPENCV_VERSION})\r
\r
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/opencv.pc.cmake.in" "${CMAKE_BINARY_DIR}/unix-install/opencv.pc" @ONLY IMMEDIATE)\r
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")\r
\r
\r
-# Make sure the system libraries are also copied when doing an "INSTALL":\r
-# ----------------------------------------------------------------------------\r
-include(InstallRequiredSystemLibraries)\r
-\r
-\r
# ----------------------------------------------------------------------------\r
# CPack target\r
# ----------------------------------------------------------------------------\r
\r
-option(BUILD_PACKAGE "Build a installer with the SDK")\r
+set(BUILD_PACKAGE OFF CACHE BOOL "Build a installer with the SDK")\r
\r
if(BUILD_PACKAGE)\r
\r
- configure_file(\r
- Package.cmake.in\r
- ${CMAKE_BINARY_DIR}/.cpack/Package.cmake\r
- @ONLY\r
- )\r
- \r
- install(FILES \r
- AUTHORS\r
- ChangeLog\r
- COPYING\r
- INSTALL\r
- NEWS\r
- README\r
- THANKS\r
- TODO\r
- DESTINATION ${OPENCV_DOC_INSTALL_PATH}\r
- COMPONENT doc\r
- )\r
-\r
- IF (WIN32)\r
- # Add the "win-install/OpenCVConfig.cmake" file to the "dev" install component \r
- install(FILES \r
- "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake"\r
- DESTINATION "."\r
- COMPONENT dev\r
- )\r
-\r
- # Add debug libs to "dev" install component \r
- file(GLOB EXTRA_LIBS_TO_INSTALL "${CMAKE_BINARY_DIR}/lib/Debug/*.lib")\r
- install(FILES \r
- ${EXTRA_LIBS_TO_INSTALL}\r
- DESTINATION "lib"\r
- COMPONENT dev\r
- )\r
- # Add debug DLLs to "dev" install component \r
- file(GLOB EXTRA_DLLS_TO_INSTALL "${CMAKE_BINARY_DIR}/bin/Debug/*.dll")\r
- install(FILES \r
- ${EXTRA_DLLS_TO_INSTALL}\r
- DESTINATION "bin"\r
- COMPONENT dev\r
- )\r
- ENDIF(WIN32)\r
- \r
- include(${CMAKE_BINARY_DIR}/.cpack/Package.cmake)\r
- \r
+ configure_file(\r
+ Package.cmake.in\r
+ ${CMAKE_BINARY_DIR}/.cpack/Package.cmake\r
+ @ONLY\r
+ )\r
+ \r
+ include(${CMAKE_BINARY_DIR}/.cpack/Package.cmake)\r
+\r
+ set(root_files README)\r
+\r
+ file(GLOB root_src_files *.in *.cmake CMakeLists.txt)\r
+\r
+ if (NOT WIN32)\r
+ install(FILES ${root_files}\r
+ DESTINATION ${OPENCV_DOC_INSTALL_PATH}\r
+ COMPONENT main)\r
+ else()\r
+ install(FILES ${root_files}\r
+ DESTINATION "."\r
+ COMPONENT main)\r
+ install(FILES ${root_src_files}\r
+ DESTINATION "."\r
+ COMPONENT src)\r
+ # Add the "win-install/OpenCVConfig.cmake" file to the "main" install component \r
+ install(FILES \r
+ "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake"\r
+ DESTINATION "."\r
+ COMPONENT main\r
+ )\r
+\r
+ if(CMAKE_INSTALL_DEBUG_LIBRARIES)\r
+ foreach(m cxcore cv cvaux ml highgui opencv_ffmpeg)\r
+ install(FILES ${CMAKE_BINARY_DIR}/bin/Debug/${m}${OPENCV_DLLVERSION}d.dll\r
+ DESTINATION bin COMPONENT main)\r
+ install(FILES ${CMAKE_BINARY_DIR}/lib/Debug/${m}${OPENCV_DLLVERSION}d.lib\r
+ DESTINATION lib COMPONENT main)\r
+ endforeach() \r
+ endif()\r
+\r
+ install(DIRECTORY data samples DESTINATION "." COMPONENT main PATTERN ".svn" EXCLUDE)\r
+ install(DIRECTORY 3rdparty apps interfaces src tests utils DESTINATION "." COMPONENT src PATTERN ".svn" EXCLUDE)\r
+ install(DIRECTORY doc/ DESTINATION doc COMPONENT src FILES_MATCHING PATTERN "*.tex")\r
+ install(DIRECTORY doc/pics DESTINATION doc COMPONENT src PATTERN ".svn" EXCLUDE)\r
+ install(DIRECTORY doc/plastex DESTINATION doc COMPONENT src PATTERN ".svn" EXCLUDE)\r
+ \r
+ endif()\r
+endif()\r
+\r
+\r
+#-----------------------------------\r
+# Subdirectories:\r
+#-----------------------------------\r
+add_subdirectory(src)\r
+add_subdirectory(apps)\r
+\r
+if(BUILD_LATEX_DOCS)\r
+ include(OpenCVFindLATEX.cmake REQUIRED)\r
+ \r
+ if(PDFLATEX_COMPILER)\r
+ message(STATUS "PDF LaTeX found!")\r
+ endif()\r
+endif()\r
+\r
+add_subdirectory(doc)\r
+add_subdirectory(data)\r
+\r
+if(BUILD_EXAMPLES OR INSTALL_PYTHON_EXAMPLES OR INSTALL_OCTAVE_EXAMPLES)\r
+ add_subdirectory(samples)\r
+endif()\r
+\r
+if(BUILD_TESTS)\r
+ enable_testing()\r
+ add_subdirectory(tests)\r
endif()\r
\r
+add_subdirectory(interfaces)\r
+add_subdirectory(3rdparty)\r
+\r
+\r
# ----------------------------------------------------------------------------\r
# Sumary:\r
# ----------------------------------------------------------------------------\r
message(STATUS "")\r
message(STATUS "General configuration for opencv ${OPENCV_VERSION} =====================================")\r
message(STATUS "")\r
+message(STATUS " Built as dynamic libs?: ${BUILD_SHARED_LIBS}")\r
message(STATUS " Compiler: ${CMAKE_COMPILER}")\r
message(STATUS " C++ flags (Release): ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}")\r
message(STATUS " C++ flags (Debug): ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG}")\r
message(STATUS " Linker flags (Debug): ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_DEBUG}")\r
endif()\r
\r
-if(UNIX)\r
-if(NOT APPLE)\r
+if(UNIX AND NOT APPLE)\r
message(STATUS "")\r
message(STATUS " GUI: ")\r
message(STATUS " GTK+ 2.x: ${HAVE_GTK}")\r
message(STATUS " GThread: ${HAVE_GTHREAD}")\r
message(STATUS "")\r
-if(NOT OPENCV_BUILD_3RDPARTY_LIBS)\r
+endif()\r
+\r
+if(APPLE)\r
+message(STATUS "")\r
+if(HAVE_CARBON)\r
+message(STATUS " GUI Back-end: Carbon")\r
+else()\r
+message(STATUS " GUI Back-end: Cocoa")\r
+endif()\r
+message(STATUS "")\r
+endif() \r
+\r
message(STATUS " Image I/O: ")\r
+if(NOT WITH_JPEG OR JPEG_FOUND)\r
message(STATUS " JPEG: ${JPEG_FOUND}")\r
-message(STATUS " PNG: ${PNG_FOUND}")\r
-message(STATUS " TIFF: ${TIFF_FOUND}")\r
-message(STATUS " JASPER: ${JASPER_FOUND}")\r
else()\r
-message(STATUS " Image I/O: ")\r
message(STATUS " JPEG: build")\r
+endif()\r
+\r
+if(NOT WIDTH_PNG OR PNG_FOUND)\r
+message(STATUS " PNG: ${PNG_FOUND}")\r
+else()\r
message(STATUS " PNG: build")\r
+endif()\r
+\r
+if(NOT WITH_TIFF OR TIFF_FOUND)\r
+message(STATUS " TIFF: ${TIFF_FOUND}")\r
+else()\r
message(STATUS " TIFF: build")\r
-message(STATUS " JASPER: build")\r
endif()\r
+\r
+if(NOT WITH_JASPER OR JASPER_FOUND)\r
+message(STATUS " JPEG 2000: ${JASPER_FOUND}")\r
+else()\r
+message(STATUS " JPEG 2000: build")\r
endif()\r
+\r
+if(UNIX AND NOT APPLE)\r
message(STATUS "")\r
message(STATUS " Video I/O: ")\r
message(STATUS " DC1394 1.x: ${HAVE_DC1394}")\r
message(STATUS " codec: ${HAVE_FFMPEG_CODEC}")\r
message(STATUS " format: ${HAVE_FFMPEG_FORMAT}")\r
message(STATUS " util: ${HAVE_FFMPEG_UTIL}")\r
+message(STATUS " swscale: ${HAVE_FFMPEG_SWSCALE}")\r
message(STATUS " gentoo-style: ${HAVE_GENTOO_FFMPEG}")\r
message(STATUS " GStreamer: ${HAVE_GSTREAMER}")\r
message(STATUS " UniCap: ${HAVE_UNICAP}")\r
+message(STATUS " PvAPI: ${HAVE_PVAPI}")\r
if(HAVE_LIBV4L)\r
message(STATUS " V4L/V4L2: Using libv4l")\r
else()\r
endif()\r
message(STATUS " Xine: ${HAVE_XINE}")\r
endif()\r
+\r
+if(APPLE)\r
+message(STATUS "")\r
+if(WITH_QUICKTIME)\r
+message(STATUS " Video I/O: QuickTime")\r
+else()\r
+message(STATUS " Video I/O: QTKit")\r
+endif()\r
+endif()\r
+\r
message(STATUS "")\r
message(STATUS " Interfaces: ")\r
-if(PYTHONLIBS_FOUND AND BUILD_PYTHON_SUPPORT)\r
-message(STATUS " Python: 1")\r
+if(PYTHONLIBS_FOUND AND BUILD_SWIG_PYTHON_SUPPORT)\r
+message(STATUS " Old Python: 1")\r
else()\r
-message(STATUS " Python: 0")\r
+message(STATUS " Old Python: 0")\r
endif()\r
+message(STATUS " Python: ${BUILD_NEW_PYTHON_SUPPORT}")\r
+message(STATUS " Python interpreter: ${PYTHON_EXECUTABLE}")\r
+message(STATUS " Python numpy: ${PYTHON_USE_NUMPY}")\r
+\r
if(IPP_FOUND AND USE_IPP)\r
-message(STATUS " Use IPP: 1")\r
+message(STATUS " Use IPP: ${IPP_PATH}")\r
else()\r
-message(STATUS " Use IPP: 0")\r
+message(STATUS " Use IPP: NO")\r
endif()\r
+\r
+if(HAVE_TBB)\r
+message(STATUS " Use TBB: YES")\r
+else()\r
+message(STATUS " Use TBB: NO")\r
+endif()\r
+\r
if(BUILD_LATEX_DOCS AND PDFLATEX_COMPILER)\r
message(STATUS " Build Documentation 1")\r
else()\r