else(NOT CMAKE_TOOLCHAIN_FILE)
#Android: set output folder to ${CMAKE_BINARY_DIR}
set( LIBRARY_OUTPUT_PATH_ROOT ${CMAKE_BINARY_DIR} CACHE PATH "root for library output, set this to change where android libs are compiled to" )
+ # any crosscompiling
+ set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory")
endif(NOT CMAKE_TOOLCHAIN_FILE)
# --------------------------------------------------------------
# Top level OpenCV project
# --------------------------------------------------------------
-if(NOT IOS)
- cmake_minimum_required(VERSION 2.6.3)
+if(CMAKE_GENERATOR MATCHES Xcode AND XCODE_VERSION VERSION_GREATER 4.3)
+ cmake_minimum_required(VERSION 2.8.8)
+elseif(IOS)
+ cmake_minimum_required(VERSION 2.8.0)
else()
- cmake_minimum_required(VERSION 2.8)
+ cmake_minimum_required(VERSION 2.6.3)
endif()
+# must go before the project command
set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE)
if(DEFINED CMAKE_BUILD_TYPE AND CMAKE_VERSION VERSION_GREATER "2.8")
set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} )
endif()
-project(OpenCV)
+project(OpenCV CXX C)
include(cmake/OpenCVUtils.cmake REQUIRED)
# ----------------------------------------------------------------------------
+# Break in case of popular CMake configuration mistakes
+# ----------------------------------------------------------------------------
+if(NOT CMAKE_SIZEOF_VOID_P GREATER 0)
+ message(FATAL_ERROR "CMake fails to deterimine the bitness of target platform.
+ Please check your CMake and compiler installation. If you are crosscompiling then ensure that your CMake toolchain file correctly sets the compiler details.")
+endif()
+
+# ----------------------------------------------------------------------------
# Detect compiler and target platform architecture
# ----------------------------------------------------------------------------
include(cmake/OpenCVDetectCXXCompiler.cmake REQUIRED)
OCV_OPTION(WITH_CUDA "Include NVidia Cuda Runtime support" ON IF (CMAKE_VERSION VERSION_GREATER "2.8" AND NOT ANDROID AND NOT IOS) )
OCV_OPTION(WITH_CUFFT "Include NVidia Cuda Fast Fourier Transform (FFT) library support" ON IF (CMAKE_VERSION VERSION_GREATER "2.8" AND NOT ANDROID AND NOT IOS) )
OCV_OPTION(WITH_EIGEN "Include Eigen2/Eigen3 support" ON)
-OCV_OPTION(WITH_FFMPEG "Include FFMPEG support" ON IF (UNIX AND NOT ANDROID AND NOT IOS) )
-OCV_OPTION(WITH_GSTREAMER "Include Gstreamer support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID AND NOT IOS) )
-OCV_OPTION(WITH_GTK "Include GTK support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID AND NOT IOS) )
+OCV_OPTION(WITH_FFMPEG "Include FFMPEG support" ON IF (NOT ANDROID AND NOT IOS) )
+OCV_OPTION(WITH_GSTREAMER "Include Gstreamer support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) )
+OCV_OPTION(WITH_GTK "Include GTK support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) )
+OCV_OPTION(WITH_IMAGEIO "ImageIO support for OS X" OFF IF APPLE)
OCV_OPTION(WITH_IPP "Include Intel IPP support" OFF IF (MSVC OR X86 OR X86_64) )
OCV_OPTION(WITH_JASPER "Include JPEG2K support" ON IF (NOT IOS) )
OCV_OPTION(WITH_JPEG "Include JPEG support" ON IF (NOT IOS) )
OCV_OPTION(WITH_OPENEXR "Include ILM support via OpenEXR" ON IF (NOT IOS) )
-OCV_OPTION(WITH_OPENGL "Include OpenGL support" OFF IF (NOT ANDROID AND NOT IOS) )
+OCV_OPTION(WITH_OPENGL "Include OpenGL support" OFF IF (NOT ANDROID AND NOT APPLE) )
OCV_OPTION(WITH_OPENNI "Include OpenNI support" OFF IF (NOT ANDROID AND NOT IOS) )
OCV_OPTION(WITH_PNG "Include PNG support" ON IF (NOT IOS) )
-OCV_OPTION(WITH_PVAPI "Include Prosilica GigE support" ON IF (UNIX AND NOT ANDROID AND NOT IOS) )
+OCV_OPTION(WITH_PVAPI "Include Prosilica GigE support" ON IF (NOT ANDROID AND NOT IOS) )
OCV_OPTION(WITH_QT "Build with Qt Backend support" OFF IF (NOT ANDROID AND NOT IOS) )
OCV_OPTION(WITH_QUICKTIME "Use QuickTime for Video I/O insted of QTKit" OFF IF APPLE )
OCV_OPTION(WITH_TBB "Include Intel TBB support" OFF IF (NOT IOS) )
OCV_OPTION(WITH_TIFF "Include TIFF support" ON IF (NOT IOS) )
-OCV_OPTION(WITH_UNICAP "Include Unicap support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID AND NOT IOS) )
-OCV_OPTION(WITH_V4L "Include Video 4 Linux support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID AND NOT IOS) )
+OCV_OPTION(WITH_UNICAP "Include Unicap support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
+OCV_OPTION(WITH_V4L "Include Video 4 Linux support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) )
OCV_OPTION(WITH_VIDEOINPUT "Build HighGUI with DirectShow support" ON IF WIN32 )
-OCV_OPTION(WITH_XIMEA "Include XIMEA cameras support" OFF IF WIN32 )
-OCV_OPTION(WITH_XINE "Include Xine support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID AND NOT IOS) )
-OCV_OPTION(WITH_CLP "Include Clp support (EPL)" OFF IF (UNIX AND NOT ANDROID AND NOT IOS) )
+OCV_OPTION(WITH_XIMEA "Include XIMEA cameras support" OFF IF (NOT ANDROID AND NOT APPLE) )
+OCV_OPTION(WITH_XINE "Include Xine support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
+OCV_OPTION(WITH_CLP "Include Clp support (EPL)" OFF)
+OCV_OPTION(WITH_OPENCL "Include OpenCL Runtime support" OFF IF (NOT ANDROID AND NOT IOS) )
+OCV_OPTION(WITH_OPENCLAMDFFT "Include AMD OpenCL FFT library support" OFF IF (NOT ANDROID AND NOT IOS) )
+OCV_OPTION(WITH_OPENCLAMDBLAS "Include AMD OpenCL BLAS library support" OFF IF (NOT ANDROID AND NOT IOS) )
+
# OpenCV build components
# ===================================================
OCV_OPTION(BUILD_WITH_DEBUG_INFO "Include debug info into debug libs (not MSCV only)" ON )
OCV_OPTION(BUILD_WITH_STATIC_CRT "Enables use of staticaly linked CRT for staticaly linked OpenCV" ON IF MSVC )
OCV_OPTION(BUILD_FAT_JAVA_LIB "Create fat java wrapper containing the whole OpenCV library" ON IF ANDROID AND NOT BUILD_SHARED_LIBS AND CMAKE_COMPILER_IS_GNUCXX )
+OCV_OPTION(BUILD_ANDROID_SERVICE "Build OpenCV Manager for Google Play" OFF IF ANDROID AND ANDROID_USE_STLPORT AND ANDROID_SOURCE_TREE )
+OCV_OPTION(BUILD_ANDROID_PACKAGE "Build platform-specific package for Google Play" OFF IF ANDROID )
+
# 3rd party libs
-OCV_OPTION(BUILD_ZLIB "Build zlib from source" WIN32 OR IOS )
-OCV_OPTION(BUILD_TIFF "Build libtiff from source" WIN32 OR IOS OR ANDROID )
-OCV_OPTION(BUILD_JASPER "Build libjasper from source" WIN32 OR IOS OR ANDROID )
-OCV_OPTION(BUILD_JPEG "Build libjpeg from source" WIN32 OR IOS OR ANDROID )
-OCV_OPTION(BUILD_PNG "Build libpng from source" WIN32 OR IOS OR ANDROID )
+OCV_OPTION(BUILD_ZLIB "Build zlib from source" WIN32 OR IOS OR APPLE )
+OCV_OPTION(BUILD_TIFF "Build libtiff from source" WIN32 OR IOS OR ANDROID OR APPLE )
+OCV_OPTION(BUILD_JASPER "Build libjasper from source" WIN32 OR IOS OR ANDROID OR APPLE )
+OCV_OPTION(BUILD_JPEG "Build libjpeg from source" WIN32 OR IOS OR ANDROID OR APPLE )
+OCV_OPTION(BUILD_PNG "Build libpng from source" WIN32 OR IOS OR ANDROID OR APPLE )
# OpenCV installation options
# ===================================================
OCV_OPTION(INSTALL_ANDROID_EXAMPLES "Install Android examples" OFF IF ANDROID )
OCV_OPTION(INSTALL_TO_MANGLED_PATHS "Enables mangled install paths, that help with side by side installs." OFF IF (UNIX AND NOT ANDROID AND NOT IOS AND BUILD_SHARED_LIBS) )
+
+if(MSVC_IDE OR CMAKE_GENERATOR MATCHES Xcode)
+ set(ENABLE_SOLUTION_FOLDERS0 ON)
+else()
+ set(ENABLE_SOLUTION_FOLDERS0 OFF)
+endif()
+
# OpenCV build options
# ===================================================
OCV_OPTION(ENABLE_PRECOMPILED_HEADERS "Use precompiled headers" ON IF (NOT IOS) )
-OCV_OPTION(ENABLE_SOLUTION_FOLDERS "Solution folder in Visual Studio or in other IDEs" MSVC_IDE IF (CMAKE_VERSION VERSION_GREATER "2.8.0") )
+OCV_OPTION(ENABLE_SOLUTION_FOLDERS "Solution folder in Visual Studio or in other IDEs" ${ENABLE_SOLUTION_FOLDERS0} IF (CMAKE_VERSION VERSION_GREATER "2.8.0") )
OCV_OPTION(ENABLE_PROFILING "Enable profiling in the GCC compiler (Add flags: -g -pg)" OFF IF CMAKE_COMPILER_IS_GNUCXX )
OCV_OPTION(ENABLE_OMIT_FRAME_POINTER "Enable -fomit-frame-pointer for GCC" ON IF CMAKE_COMPILER_IS_GNUCXX )
OCV_OPTION(ENABLE_POWERPC "Enable PowerPC for GCC" ON IF (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_PROCESSOR MATCHES powerpc.*) )
OCV_OPTION(ENABLE_SSSE3 "Enable SSSE3 instructions" OFF IF (CMAKE_COMPILER_IS_GNUCXX AND (X86 OR X86_64)) )
OCV_OPTION(ENABLE_SSE41 "Enable SSE4.1 instructions" OFF IF (CV_ICC OR CMAKE_COMPILER_IS_GNUCXX AND (X86 OR X86_64)) )
OCV_OPTION(ENABLE_SSE42 "Enable SSE4.2 instructions" OFF IF (CMAKE_COMPILER_IS_GNUCXX AND (X86 OR X86_64)) )
+OCV_OPTION(ENABLE_NOISY_WARNINGS "Show all warnings even if they are too noisy" OFF )
OCV_OPTION(OPENCV_WARNINGS_ARE_ERRORS "Treat warnings as errors" OFF )
# uncategorized options
# ----------------------------------------------------------------------------
# Save libs and executables in the same place
-set(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}/lib" CACHE PATH "Output directory for libraries" )
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin" CACHE PATH "Output directory for applications" )
if(ANDROID OR WIN32)
endif()
if(ANDROID)
- set(OPENCV_LIB_INSTALL_PATH libs/${ANDROID_NDK_ABI_NAME})
+ set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib/${ANDROID_NDK_ABI_NAME}")
+ set(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib/${ANDROID_NDK_ABI_NAME}")
+ set(OPENCV_LIB_INSTALL_PATH sdk/native/libs/${ANDROID_NDK_ABI_NAME})
+ set(OPENCV_3P_LIB_INSTALL_PATH sdk/native/3rdparty/libs/${ANDROID_NDK_ABI_NAME})
+ set(OPENCV_CONFIG_INSTALL_PATH sdk/native/jni)
+ set(OPENCV_INCLUDE_INSTALL_PATH sdk/native/jni/include)
else()
- set(OPENCV_LIB_INSTALL_PATH lib${LIB_SUFFIX})
+ set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib")
+ set(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}")
+ set(OPENCV_LIB_INSTALL_PATH lib${LIB_SUFFIX})
+ set(OPENCV_3P_LIB_INSTALL_PATH share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH})
+ set(OPENCV_INCLUDE_INSTALL_PATH include)
+
+ math(EXPR SIZEOF_VOID_P_BITS "8 * ${CMAKE_SIZEOF_VOID_P}")
+ if(LIB_SUFFIX AND NOT SIZEOF_VOID_P_BITS EQUAL LIB_SUFFIX)
+ set(OPENCV_CONFIG_INSTALL_PATH lib${LIB_SUFFIX}/cmake/opencv)
+ else()
+ set(OPENCV_CONFIG_INSTALL_PATH share/OpenCV)
+ endif()
endif()
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OPENCV_LIB_INSTALL_PATH}")
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
-set(OPENCV_INCLUDE_PREFIX include)
if(INSTALL_TO_MANGLED_PATHS)
- set(OPENCV_INCLUDE_PREFIX include/opencv-${OPENCV_VERSION})
+ set(OPENCV_INCLUDE_INSTALL_PATH ${OPENCV_INCLUDE_INSTALL_PATH}/opencv-${OPENCV_VERSION})
endif()
if(WIN32)
# ----------------------------------------------------------------------------
-# Use statically or dynamically linked CRT?
-# Default: dynamic
+# Autodetect if we are in a GIT repository
# ----------------------------------------------------------------------------
-if(MSVC)
- include(cmake/OpenCVCRTLinkage.cmake REQUIRED)
-endif(MSVC)
+# don't use FindGit because it requires CMake 2.8.2
+set(git_names git eg) # eg = easy git
+# Prefer .cmd variants on Windows unless running in a Makefile in the MSYS shell
+if(WIN32)
+ if(NOT CMAKE_GENERATOR MATCHES "MSYS")
+ set(git_names git.cmd git eg.cmd eg)
+ endif()
+endif()
-# ----------------------------------------------------------------------------
-# Autodetect if we are in a SVN repository
-# ----------------------------------------------------------------------------
-find_host_program(SVNVERSION_PATH svnversion)
-mark_as_advanced(force SVNVERSION_PATH)
-if(SVNVERSION_PATH)
- message(STATUS "Extracting svn version, please wait...")
- execute_process(COMMAND ${SVNVERSION_PATH} -n ${OpenCV_SOURCE_DIR} OUTPUT_VARIABLE SVNVERSION_RESULT)
+find_host_program(GIT_EXECUTABLE NAMES ${git_names} PATH_SUFFIXES Git/cmd Git/bin DOC "git command line client")
+mark_as_advanced(GIT_EXECUTABLE)
- if(SVNVERSION_RESULT MATCHES "exported")
- # This is NOT a svn repository:
- set(OPENCV_SVNVERSION "")
- message(STATUS "SVNVERSION: exported")
- else()
- set(OPENCV_SVNVERSION " svn:${SVNVERSION_RESULT}")
- message(STATUS "SVNVERSION: ${OPENCV_SVNVERSION}")
- endif()
+if(GIT_EXECUTABLE)
+ execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
+ WORKING_DIRECTORY "${OpenCV_SOURCE_DIR}"
+ OUTPUT_VARIABLE OPENCV_GIT_HASH_SORT
+ RESULT_VARIABLE GIT_RESULT
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ if(GIT_RESULT EQUAL 0)
+ set(OPENCV_VCSVERSION "commit:${OPENCV_GIT_HASH_SORT}")
+ else()
+ set(OPENCV_VCSVERSION "exported")
+ endif()
else()
- # We don't have svnversion:
- set(OPENCV_SVNVERSION "")
+ # We don't have git:
+ set(OPENCV_VCSVERSION "")
endif()
# ----------------------------------------------------------------------------
# OpenCV compiler and linker options
# ----------------------------------------------------------------------------
-include(cmake/OpenCVCompilerOptions.cmake REQUIRED)
-
# In case of Makefiles if the user does not setup CMAKE_BUILD_TYPE, assume it's Release:
-if(CMAKE_GENERATOR MATCHES "Makefiles" AND "${CMAKE_BUILD_TYPE}" STREQUAL "")
+if(CMAKE_GENERATOR MATCHES "Makefiles|Ninja" AND "${CMAKE_BUILD_TYPE}" STREQUAL "")
set(CMAKE_BUILD_TYPE Release)
endif()
+include(cmake/OpenCVCompilerOptions.cmake REQUIRED)
+
+
+# ----------------------------------------------------------------------------
+# Use statically or dynamically linked CRT?
+# Default: dynamic
+# ----------------------------------------------------------------------------
+if(MSVC)
+ include(cmake/OpenCVCRTLinkage.cmake REQUIRED)
+endif(MSVC)
+
# ----------------------------------------------------------------------------
# CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC..
include(cmake/OpenCVFindPkgConfig.cmake OPTIONAL)
include(CheckFunctionExists)
include(CheckIncludeFile)
+
+ if(NOT APPLE)
+ CHECK_INCLUDE_FILE(alloca.h HAVE_ALLOCA_H)
+ CHECK_FUNCTION_EXISTS(alloca HAVE_ALLOCA)
+ CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
+ CHECK_INCLUDE_FILE(pthread.h HAVE_LIBPTHREAD)
+ if(ANDROID)
+ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} dl m log)
+ elseif(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD|NetBSD|DragonFly")
+ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} m pthread)
+ else()
+ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} dl m pthread rt)
+ endif()
+ else()
+ add_definitions(-DHAVE_ALLOCA -DHAVE_ALLOCA_H -DHAVE_LIBPTHREAD -DHAVE_UNISTD_H)
+ endif()
endif()
include(cmake/OpenCVPCHSupport.cmake REQUIRED)
include(cmake/OpenCVModule.cmake REQUIRED)
# ----------------------------------------------------------------------------
-# Detect 3rd-party tools and libraries
+# Detect 3rd-party libraries
# ----------------------------------------------------------------------------
-# IO libraries
-include(cmake/OpenCVIOLibs.cmake REQUIRED)
-
-#Graphic libraries
-set(HAVE_OPENGL 0)
-if(UNIX)
- if(NOT APPLE)
- if(WITH_GTK)
- CHECK_MODULE(gtk+-2.0 HAVE_GTK)
- CHECK_MODULE(gthread-2.0 HAVE_GTHREAD)
- if(WITH_OPENGL)
- CHECK_MODULE(gtkglext-1.0 HAVE_GTKGLEXT)
- if(HAVE_GTKGLEXT)
- find_package(OpenGL QUIET)
- if(OPENGL_FOUND)
- set(HAVE_OPENGL 1)
- set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${OPENGL_LIBRARIES})
- ocv_include_directories(${OPENGL_INCLUDE_DIR})
- endif()
- endif()
- endif()
- else()
- set(HAVE_GTK FALSE)
- set(HAVE_GTHREAD FALSE)
- endif()
- if(WITH_GSTREAMER)
- CHECK_MODULE(gstreamer-base-0.10 HAVE_GSTREAMER)
- CHECK_MODULE(gstreamer-app-0.10 HAVE_GSTREAMER)
- CHECK_MODULE(gstreamer-video-0.10 HAVE_GSTREAMER)
- else()
- set(HAVE_GSTREAMER FALSE)
- endif()
- endif()
-
- if(WITH_UNICAP)
- CHECK_MODULE(libunicap HAVE_UNICAP_)
- CHECK_MODULE(libucil HAVE_UNICAP_UCIL)
- if(HAVE_UNICAP_ AND HAVE_UNICAP_UCIL)
- set(HAVE_UNICAP 1)
- endif()
- else()
- set(HAVE_UNICAP FALSE)
- endif()
-
- if(WITH_PVAPI)
- find_path(PVAPI_INCLUDE_PATH "PvApi.h"
- PATHS "/usr/local/include" "/usr/include"
- DOC "The path to PvAPI header")
- if(PVAPI_INCLUDE_PATH)
- set(HAVE_PVAPI 1)
- endif()
- endif()
-
- set(HAVE_FFMPEG 0)
- if(WITH_FFMPEG)
- CHECK_MODULE(libavcodec HAVE_FFMPEG_CODEC)
- CHECK_MODULE(libavformat HAVE_FFMPEG_FORMAT)
- CHECK_MODULE(libavutil HAVE_FFMPEG_UTIL)
- CHECK_MODULE(libswscale HAVE_FFMPEG_SWSCALE)
- CHECK_INCLUDE_FILE(libavformat/avformat.h HAVE_GENTOO_FFMPEG)
- CHECK_INCLUDE_FILE(ffmpeg/avformat.h HAVE_FFMPEG_FFMPEG)
- if(NOT HAVE_GENTOO_FFMPEG AND NOT HAVE_FFMPEG_FFMPEG)
- if(EXISTS /usr/include/ffmpeg/libavformat/avformat.h OR HAVE_FFMPEG_SWSCALE)
- set(HAVE_GENTOO_FFMPEG 1)
- endif()
- endif()
- if(HAVE_FFMPEG_CODEC AND HAVE_FFMPEG_FORMAT AND HAVE_FFMPEG_UTIL)
- if(HAVE_FFMPEG_SWSCALE OR NOT HAVE_GENTOO_FFMPEG)
- set(HAVE_FFMPEG 1)
- endif()
- endif()
-
- # Find the bzip2 library because it is required on some systems
- FIND_LIBRARY(BZIP2_LIBRARIES NAMES bz2 bzip2)
- if(NOT BZIP2_LIBRARIES)
- # Do an other trial
- FIND_FILE(BZIP2_LIBRARIES NAMES libbz2.so.1 PATHS /lib)
- endif()
- endif()
-
- if(HAVE_FFMPEG)
- CHECK_MODULE(libavformat>=52.111.0 NEW_FFMPEG)
- endif()
+include(cmake/OpenCVFindLibsGrfmt.cmake REQUIRED)
+include(cmake/OpenCVFindLibsGUI.cmake REQUIRED)
+include(cmake/OpenCVFindLibsVideo.cmake REQUIRED)
+include(cmake/OpenCVFindLibsPerf.cmake REQUIRED)
- if(WITH_1394)
- CHECK_MODULE(libdc1394-2 HAVE_DC1394_2)
- if(NOT HAVE_DC1394_2)
- CHECK_MODULE(libdc1394 HAVE_DC1394)
- endif()
- else()
- set(HAVE_DC1394_2 FALSE)
- set(HAVE_DC1394 FALSE)
- endif()
- if(NOT APPLE)
- CHECK_INCLUDE_FILE(alloca.h HAVE_ALLOCA_H)
- CHECK_FUNCTION_EXISTS(alloca HAVE_ALLOCA)
- CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
- CHECK_INCLUDE_FILE(pthread.h HAVE_LIBPTHREAD)
-
- if(WITH_XINE)
- CHECK_MODULE(libxine HAVE_XINE)
- else()
- set(HAVE_XINE FALSE)
- endif()
- if(WITH_V4L)
- CHECK_MODULE(libv4l1 HAVE_LIBV4L)
- CHECK_INCLUDE_FILE(linux/videodev.h HAVE_CAMV4L)
- CHECK_INCLUDE_FILE(linux/videodev2.h HAVE_CAMV4L2)
- else()
- set(HAVE_LIBV4L FALSE)
- set(HAVE_CAMV4L FALSE)
- set(HAVE_CAMV4L2 FALSE)
- endif()
-
- if(ANDROID)
- set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} dl m log)
- elseif(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR ${CMAKE_SYSTEM_NAME} MATCHES "NetBSD")
- set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} m pthread)
- else()
- set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} dl m pthread rt)
- endif()
- else()
- add_definitions(-DHAVE_ALLOCA -DHAVE_ALLOCA_H -DHAVE_LIBPTHREAD -DHAVE_UNISTD_H)
- endif()
-endif()
+# ----------------------------------------------------------------------------
+# Detect other 3rd-party libraries/tools
+# ----------------------------------------------------------------------------
-#################### LATEX for dpf documentation ##################
+# --- LATEX for pdf documentation ---
if(BUILD_DOCS)
include(cmake/OpenCVFindLATEX.cmake REQUIRED)
-endif()
+endif(BUILD_DOCS)
-########################## Python Support #########################
+# --- Python Support ---
include(cmake/OpenCVDetectPython.cmake REQUIRED)
-########################### Java Support ##########################
+# --- Java Support ---
if(ANDROID)
include(cmake/OpenCVDetectApacheAnt.cmake REQUIRED)
include(cmake/OpenCVDetectAndroidSDK.cmake REQUIRED)
-
+
if(NOT ANDROID_TOOLS_Pkg_Revision GREATER 13)
message(WARNING "OpenCV requires Android SDK tools revision 14 or newer. Otherwise tests and samples will no be compiled.")
endif()
-endif()
+endif(ANDROID)
if(ANDROID AND ANDROID_EXECUTABLE AND ANT_EXECUTABLE AND (ANT_VERSION VERSION_GREATER 1.7) AND (ANDROID_TOOLS_Pkg_Revision GREATER 13))
SET(CAN_BUILD_ANDROID_PROJECTS TRUE)
SET(CAN_BUILD_ANDROID_PROJECTS FALSE)
endif()
-############################### QT ################################
-set(HAVE_QT 0)
-set(HAVE_QT_OPENGL 0)
-
-if(WITH_QT)
- find_package(Qt4)
- if(QT4_FOUND)
- set(HAVE_QT 1)
- add_definitions(-DHAVE_QT) #We need to define te macro this way, using cvconfig.h.cmake does not work
-
- if(WITH_OPENGL)
- find_package (OpenGL QUIET)
- if(QT_QTOPENGL_FOUND AND OPENGL_FOUND)
- set(HAVE_OPENGL 1)
- set(HAVE_QT_OPENGL 1)
- add_definitions(-DHAVE_QT_OPENGL)
- set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${OPENGL_LIBRARIES})
- endif()
- endif()
+# --- OpenCL ---
+if(WITH_OPENCL)
+ include(cmake/OpenCVDetectOpenCL.cmake REQUIRED)
+ if(OPENCL_FOUND)
+ set(HAVE_OPENCL 1)
endif()
-endif()
-
-############################### TBB ################################
-if(WITH_TBB)
- include(cmake/OpenCVDetectTBB.cmake REQUIRED)
-endif()
-
-############################ Intel IPP #############################
-set(IPP_FOUND)
-
-if(WITH_IPP)
- include(cmake/OpenCVFindIPP.cmake)
-endif()
-
-if(IPP_FOUND)
- add_definitions(-DHAVE_IPP)
- ocv_include_directories(${IPP_INCLUDE_DIRS})
- link_directories(${IPP_LIBRARY_DIRS})
- set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${IPP_LIBRARIES})
-endif()
-
-############################### CUDA ################################
-if(WITH_CUDA)
- include(cmake/OpenCVDetectCUDA.cmake REQUIRED)
-endif()
-
-############################### OpenNI ################################
-set(HAVE_OPENNI FALSE)
-set(HAVE_OPENNI_PRIME_SENSOR_MODULE FALSE)
-
-if(WITH_OPENNI)
- include(cmake/OpenCVFindOpenNI.cmake)
-endif()
-
-############################### XIMEA ################################
-set(HAVE_XIMEA FALSE)
-
-if(WITH_XIMEA)
- include(cmake/OpenCVFindXimea.cmake)
-endif()
-
-if(XIMEA_FOUND)
- set(HAVE_XIMEA TRUE)
-endif()
-
-############################## Eigen ##############################
-if(WITH_EIGEN)
- find_path(EIGEN_INCLUDE_PATH "Eigen/Core"
- PATHS "/usr/local/include/eigen2" "/opt/include/eigen2" "/usr/include/eigen2"
- "/usr/local/include/eigen3" "/opt/include/eigen3" "/usr/include/eigen3"
- DOC "The path to Eigen2/Eigen3 headers")
- if(EIGEN_INCLUDE_PATH)
- ocv_include_directories(${EIGEN_INCLUDE_PATH})
- set(HAVE_EIGEN 1)
- endif()
-endif()
-
-########################## Clp #####################################
-set(HAVE_CLP FALSE)
-
-if(WITH_CLP)
- PKG_CHECK_MODULES(CLP clp)
- if(CLP_FOUND)
- set(HAVE_CLP TRUE)
- if(NOT ${CLP_INCLUDE_DIRS} STREQUAL "")
- ocv_include_directories(${CLP_INCLUDE_DIRS})
- endif()
- link_directories(${CLP_LIBRARY_DIRS})
- set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CLP_LIBRARIES})
- else()
- find_path(CLP_INCLUDE_PATH "coin"
- PATHS "/usr/local/include" "/usr/include" "/opt/include"
- DOC "The path to Clp headers")
- if(CLP_INCLUDE_PATH)
- ocv_include_directories(${CLP_INCLUDE_PATH})
- set(CLP_LIBRARY_DIR "${CLP_INCLUDE_PATH}/../lib" CACHE PATH "Full path of Clp library directory")
- link_directories(${CLP_LIBRARY_DIR})
- set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} Clp CoinUtils bz2 z lapack blas m)
- set(HAVE_CLP TRUE)
- endif()
- endif()
-endif()
-
-################## Extra HighGUI libs on Windows ###################
-if(WIN32)
- set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES} comctl32 gdi32 ole32)
-
- if(WITH_VIDEOINPUT)
- set(HAVE_VIDEOINPUT 1)
- endif()
-
- if(MSVC)
- set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES} vfw32)
+ if(WITH_OPENCLAMDFFT)
+ set(HAVE_CLAMDFFT 1)
endif()
-
- if(MINGW)
- if(MINGW64)
- set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES} msvfw32 avifil32 avicap32 winmm)
- else()
- set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES} vfw32 winmm)
- endif()
- endif()
-
- if(WITH_OPENGL AND NOT HAVE_QT_OPENGL)
- find_package(OpenGL QUIET)
-
- if(OPENGL_FOUND)
- set(HAVE_OPENGL 1)
- set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${OPENGL_LIBRARIES})
- ocv_include_directories(${OPENGL_INCLUDE_DIR})
- endif()
+ if(WITH_OPENCLAMDBLAS)
+ set(HAVE_CLAMDBLAS 1)
endif()
endif()
-
# ----------------------------------------------------------------------------
# Solution folders:
# ----------------------------------------------------------------------------
add_subdirectory(samples)
endif()
+if(BUILD_ANDROID_SERVICE)
+ add_subdirectory(android/service)
+endif()
+
+if(BUILD_ANDROID_PACKAGE)
+ add_subdirectory(android/package)
+endif()
# ----------------------------------------------------------------------------
# Finalization: generate configuration-based files
# ----------------------------------------------------------------------------
status("")
status("General configuration for OpenCV ${OPENCV_VERSION} =====================================")
+if(OPENCV_VCSVERSION)
+ status(" Version control:" ${OPENCV_VCSVERSION})
+endif()
-#build platform
+# ========================== build platform ==========================
status("")
status(" Platform:")
status(" Host:" ${CMAKE_HOST_SYSTEM_NAME} ${CMAKE_HOST_SYSTEM_VERSION} ${CMAKE_HOST_SYSTEM_PROCESSOR})
-status(" Target:" ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR})
+if(CMAKE_CROSSCOMPILING)
+ status(" Target:" ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR})
+endif()
status(" CMake:" ${CMAKE_VERSION})
status(" CMake generator:" ${CMAKE_GENERATOR})
status(" CMake build tool:" ${CMAKE_BUILD_TOOL})
if(CMAKE_GENERATOR MATCHES Xcode)
status(" Xcode:" ${XCODE_VERSION})
endif()
+if(NOT CMAKE_GENERATOR MATCHES "Xcode|Visual Studio")
+ status(" Configuration:" ${CMAKE_BUILD_TYPE})
+endif()
-# C/C++ options
+# ========================== C/C++ options ==========================
status("")
-status(" C++:")
+status(" C/C++:")
status(" Built as dynamic libs?:" BUILD_SHARED_LIBS THEN YES ELSE NO)
-status(" C++ Compiler:" CMAKE_COMPILER THEN "${CMAKE_COMPILER}" ELSE "${CMAKE_CXX_COMPILER}")
+status(" C++ Compiler:" CMAKE_COMPILER_IS_GNUCXX THEN "${CMAKE_CXX_COMPILER} (ver ${CMAKE_GCC_REGEX_VERSION})" ELSE "${CMAKE_CXX_COMPILER}" )
status(" C++ flags (Release):" ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE})
status(" C++ flags (Debug):" ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG})
+status(" C Compiler:" ${CMAKE_C_COMPILER})
+status(" C flags (Release):" ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_RELEASE})
+status(" C flags (Debug):" ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_DEBUG})
if(WIN32)
status(" Linker flags (Release):" ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_RELEASE})
status(" Linker flags (Debug):" ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_DEBUG})
status(" Linker flags (Release):" ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_RELEASE})
status(" Linker flags (Debug):" ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_DEBUG})
endif()
+status(" Precompiled headers:" PCHSupport_FOUND AND ENABLE_PRECOMPILED_HEADERS THEN YES ELSE NO)
-# OpenCV modules
+# ========================== OpenCV modules ==========================
status("")
status(" OpenCV modules:")
string(REPLACE "opencv_" "" OPENCV_MODULES_BUILD_ST "${OPENCV_MODULES_BUILD}")
string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_AUTO_ST "${OPENCV_MODULES_DISABLED_AUTO_ST}")
status(" To be built:" OPENCV_MODULES_BUILD THEN ${OPENCV_MODULES_BUILD_ST} ELSE "-")
-status(" Disabled by user:" OPENCV_MODULES_DISABLED_USER THEN ${OPENCV_MODULES_DISABLED_USER_ST} ELSE "-")
+status(" Disabled:" OPENCV_MODULES_DISABLED_USER THEN ${OPENCV_MODULES_DISABLED_USER_ST} ELSE "-")
status(" Disabled by dependency:" OPENCV_MODULES_DISABLED_AUTO THEN ${OPENCV_MODULES_DISABLED_AUTO_ST} ELSE "-")
status(" Unavailable:" OPENCV_MODULES_DISABLED_FORCE THEN ${OPENCV_MODULES_DISABLED_FORCE_ST} ELSE "-")
-# Android extra
+# ========================== Android details ==========================
if(ANDROID)
status("")
status(" Android: ")
endif()
status(" android tool:" ANDROID_EXECUTABLE THEN "${ANDROID_EXECUTABLE} (${ANDROID_TOOLS_Pkg_Desc})" ELSE NO)
status(" ant:" ANT_EXECUTABLE THEN "${ANT_EXECUTABLE} (ver ${ANT_VERSION})" ELSE NO)
+ status(" Google Play package:" BUILD_ANDROID_PACKAGE THEN YES ELSE NO)
endif()
-#YV
+# ========================== GUI ==========================
status("")
status(" GUI: ")
-if (HAVE_QT)
- status(" QT 4.x:" HAVE_QT THEN YES ELSE NO)
- status(" QT OpenGL support:" HAVE_QT_OPENGL THEN YES ELSE NO)
+if(HAVE_QT)
+ status(" QT 4.x:" HAVE_QT THEN "YES (ver ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH} ${QT_EDITION})" ELSE NO)
+ status(" QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${QT_QTOPENGL_LIBRARY})" ELSE NO)
else()
+ if(DEFINED WITH_QT)
+ status(" QT 4.x:" NO)
+ endif()
if(WIN32)
status(" Win32 UI:" YES)
else()
status(" Cocoa:" YES)
endif()
else()
- status(" GTK+ 2.x:" HAVE_GTK THEN YES ELSE NO)
- status(" GThread :" HAVE_GTHREAD THEN YES ELSE NO)
- status(" GtkGlExt:" HAVE_GTKGLEXT THEN YES ELSE NO)
+ status(" GTK+ 2.x:" HAVE_GTK THEN "YES (ver ${ALIASOF_gtk+-2.0_VERSION})" ELSE NO)
+ status(" GThread :" HAVE_GTHREAD THEN "YES (ver ${ALIASOF_gthread-2.0_VERSION})" ELSE NO)
+ status(" GtkGlExt:" HAVE_GTKGLEXT THEN "YES (ver ${ALIASOF_gtkglext-1.0_VERSION})" ELSE NO)
endif()
endif()
endif()
-status(" OpenGL support:" HAVE_OPENGL THEN YES ELSE NO)
+status(" OpenGL support:" HAVE_OPENGL THEN "YES (${OPENGL_LIBRARIES})" ELSE NO)
-# media
+# ========================== MEDIA IO ==========================
status("")
status(" Media I/O: ")
-status(" ZLib:" ZLIB_FOUND THEN "${ZLIB_LIBRARY}" ELSE build)
+status(" ZLib:" BUILD_ZLIB THEN "build (ver ${ZLIB_VERSION_STRING})" ELSE "${ZLIB_LIBRARY} (ver ${ZLIB_VERSION_STRING})")
if(WITH_JPEG)
- status(" JPEG:" JPEG_FOUND THEN "${JPEG_LIBRARY}" ELSE build)
+ status(" JPEG:" JPEG_FOUND THEN "${JPEG_LIBRARY} (ver ${JPEG_LIB_VERSION})" ELSE "build (ver ${JPEG_LIB_VERSION})")
else()
status(" JPEG:" "NO")
endif()
if(WITH_PNG)
- status(" PNG:" PNG_FOUND THEN "${PNG_LIBRARY}" ELSE build)
+ status(" PNG:" PNG_FOUND THEN "${PNG_LIBRARY} (ver ${PNG_VERSION})" ELSE "build (ver ${PNG_VERSION})")
else()
status(" PNG:" "NO")
endif()
if(WITH_TIFF)
- status(" TIFF:" TIFF_FOUND THEN "${TIFF_LIBRARY}" ELSE build)
+ if(TIFF_VERSION_STRING AND TIFF_FOUND)
+ status(" TIFF:" "${TIFF_LIBRARY} (ver ${TIFF_VERSION} - ${TIFF_VERSION_STRING})")
+ else()
+ status(" TIFF:" TIFF_FOUND THEN "${TIFF_LIBRARY} (ver ${TIFF_VERSION})" ELSE "build (ver ${TIFF_VERSION} - ${TIFF_VERSION_STRING})")
+ endif()
else()
status(" TIFF:" "NO")
endif()
if(WITH_JASPER)
- status(" JPEG 2000:" JASPER_FOUND THEN "${JASPER_LIBRARY}" ELSE build)
+ status(" JPEG 2000:" JASPER_FOUND THEN "${JASPER_LIBRARY} (ver ${JASPER_VERSION_STRING})" ELSE "build (ver ${JASPER_VERSION_STRING})")
else()
status(" JPEG 2000:" "NO")
endif()
-status(" OpenEXR:" WITH_OPENEXR AND OPENEXR_FOUND THEN YES ELSE NO)
-status(" OpenNI:" HAVE_OPENNI THEN YES ELSE NO)
-status(" OpenNI PrimeSensor Modules:"
- HAVE_OPENNI_PRIME_SENSOR_MODULE THEN YES ELSE NO)
-if(WIN32)
- status(" XIMEA:" HAVE_XIMEA THEN YES ELSE NO)
-endif()
+status(" OpenEXR:" WITH_OPENEXR AND OPENEXR_FOUND THEN "${OPENEXR_LIBRARIES} (ver ${OPENEXR_VERSION})" ELSE NO)
-# video
+# ========================== VIDEO IO ==========================
status("")
-if(UNIX AND NOT APPLE)
- status(" Video I/O:")
- status(" DC1394 1.x:" HAVE_DC1394 THEN YES ELSE NO)
- status(" DC1394 2.x:" HAVE_DC1394_2 THEN YES ELSE NO)
- status(" FFMPEG:" HAVE_FFMPEG THEN YES ELSE NO)
- status(" codec:" HAVE_FFMPEG_CODEC THEN YES ELSE NO)
- status(" format:" HAVE_FFMPEG_FORMAT THEN YES ELSE NO)
- status(" util:" HAVE_FFMPEG_UTIL THEN YES ELSE NO)
- status(" swscale:" HAVE_FFMPEG_SWSCALE THEN YES ELSE NO)
- status(" gentoo-style:" HAVE_GENTOO_FFMPEG THEN YES ELSE NO)
- status(" GStreamer:" HAVE_GSTREAMER THEN YES ELSE NO)
- status(" UniCap:" HAVE_UNICAP THEN YES ELSE NO)
- status(" PvAPI:" HAVE_PVAPI THEN YES ELSE NO)
- status(" V4L/V4L2:" HAVE_LIBV4L THEN "Using libv4l" ELSE ${HAVE_CAMV4L}/${HAVE_CAMV4L2})
- status(" Xine:" HAVE_XINE THEN YES ELSE NO)
-
- if(ANDROID)
- if(HAVE_opencv_androidcamera)
- status(" AndroidNativeCamera:" BUILD_ANDROID_CAMERA_WRAPPER THEN "YES, build for Android ${ANDROID_VERSION}" ELSE "YES, use prebuilt libraries")
- else()
- status(" AndroidNativeCamera:" "NO (native camera requires Android API level 8 or higher)")
- endif()
- endif()
-elseif(APPLE)
- if(NOT IOS)
- status(" Video I/O:" WITH_QUICKTIME THEN QuickTime ELSE QTKit)
+status(" Video I/O:")
+
+if(DEFINED WITH_1394)
+ status(" DC1394 1.x:" HAVE_DC1394 THEN "YES (ver ${ALIASOF_libdc1394_VERSION})" ELSE NO)
+ status(" DC1394 2.x:" HAVE_DC1394_2 THEN "YES (ver ${ALIASOF_libdc1394-2_VERSION})" ELSE NO)
+endif(DEFINED WITH_1394)
+
+if(ANDROID)
+ if(HAVE_opencv_androidcamera)
+ status(" AndroidNativeCamera:" BUILD_ANDROID_CAMERA_WRAPPER
+ THEN "YES, build for Android${ANDROID_VERSION}" ELSE "YES, use prebuilt libraries")
else()
- status(" Video I/O: AVFoundation")
+ status(" AndroidNativeCamera:" "NO (native camera requires Android API level 8 or higher)")
endif()
-elseif(WIN32)
- status(" Video I/O:" HAVE_VIDEOINPUT THEN DirectShow ELSE NO)
endif()
-# Other third-party libraries
+if(DEFINED WITH_AVFOUNDATION)
+ status(" AVFoundation:" WITH_AVFOUNDATION THEN YES ELSE NO)
+endif(DEFINED WITH_AVFOUNDATION)
+
+if(DEFINED WITH_FFMPEG)
+ if(WIN32)
+ status(" FFMPEG:" WITH_FFMPEG THEN "YES (prebuilt binaries)" ELSE NO)
+ else()
+ status(" FFMPEG:" HAVE_FFMPEG THEN YES ELSE NO)
+ endif()
+ status(" codec:" HAVE_FFMPEG_CODEC THEN "YES (ver ${ALIASOF_libavcodec_VERSION})" ELSE NO)
+ status(" format:" HAVE_FFMPEG_FORMAT THEN "YES (ver ${ALIASOF_libavformat_VERSION})" ELSE NO)
+ status(" util:" HAVE_FFMPEG_UTIL THEN "YES (ver ${ALIASOF_libavutil_VERSION})" ELSE NO)
+ status(" swscale:" HAVE_FFMPEG_SWSCALE THEN "YES (ver ${ALIASOF_libswscale_VERSION})" ELSE NO)
+ status(" gentoo-style:" HAVE_GENTOO_FFMPEG THEN YES ELSE NO)
+endif(DEFINED WITH_FFMPEG)
+
+if(DEFINED WITH_GSTREAMER)
+ status(" GStreamer:" HAVE_GSTREAMER THEN "" ELSE NO)
+ if(HAVE_GSTREAMER)
+ status(" base:" "YES (ver ${ALIASOF_gstreamer-base-0.10_VERSION})")
+ status(" app:" "YES (ver ${ALIASOF_gstreamer-app-0.10_VERSION})")
+ status(" video:" "YES (ver ${ALIASOF_gstreamer-video-0.10_VERSION})")
+ endif()
+endif(DEFINED WITH_GSTREAMER)
+
+if(DEFINED WITH_OPENNI)
+ status(" OpenNI:" HAVE_OPENNI THEN "YES (ver ${OPENNI_VERSION_STRING}, build ${OPENNI_VERSION_BUILD})"
+ ELSE NO)
+ status(" OpenNI PrimeSensor Modules:" HAVE_OPENNI_PRIME_SENSOR_MODULE
+ THEN "YES (${OPENNI_PRIME_SENSOR_MODULE})" ELSE NO)
+endif(DEFINED WITH_OPENNI)
+
+if(DEFINED WITH_PVAPI)
+ status(" PvAPI:" HAVE_PVAPI THEN YES ELSE NO)
+endif(DEFINED WITH_PVAPI)
+
+if(DEFINED WITH_QUICKTIME)
+ status(" QuickTime:" WITH_QUICKTIME THEN YES ELSE NO)
+ status(" QTKit:" WITH_QUICKTIME THEN NO ELSE YES)
+endif(DEFINED WITH_QUICKTIME)
+
+if(DEFINED WITH_UNICAP)
+ status(" UniCap:" HAVE_UNICAP THEN "YES (ver ${ALIASOF_libunicap_VERSION})" ELSE NO)
+ status(" UniCap ucil:" HAVE_UNICAP_UCIL THEN "YES (ver ${ALIASOF_libucil_VERSION})" ELSE NO)
+endif(DEFINED WITH_UNICAP)
+
+if(DEFINED WITH_V4L)
+ if(HAVE_CAMV4L)
+ set(HAVE_CAMV4L_STR "YES")
+ else()
+ set(HAVE_CAMV4L_STR "NO")
+ endif()
+ if(HAVE_CAMV4L2)
+ set(HAVE_CAMV4L2_STR "YES")
+ else()
+ set(HAVE_CAMV4L2_STR "NO")
+ endif()
+ status(" V4L/V4L2:" HAVE_LIBV4L THEN "Using libv4l (ver ${ALIASOF_libv4l1_VERSION})"
+ ELSE "${HAVE_CAMV4L_STR}/${HAVE_CAMV4L2_STR}")
+endif(DEFINED WITH_V4L)
+
+if(DEFINED WITH_VIDEOINPUT)
+ status(" DirectShow:" HAVE_VIDEOINPUT THEN YES ELSE NO)
+endif(DEFINED WITH_VIDEOINPUT)
+
+if(DEFINED WITH_XIMEA)
+ status(" XIMEA:" HAVE_XIMEA THEN YES ELSE NO)
+endif(DEFINED WITH_XIMEA)
+
+if(DEFINED WITH_XINE)
+ status(" Xine:" HAVE_XINE THEN "YES (ver ${ALIASOF_libxine_VERSION})" ELSE NO)
+endif(DEFINED WITH_XINE)
+
+# ========================== Other third-party libraries ==========================
status("")
status(" Other third-party libraries:")
-if(WITH_IPP AND IPP_FOUND)
- status(" Use IPP:" "${IPP_LATEST_VERSION_STR} [${IPP_LATEST_VERSION_MAJOR}.${IPP_LATEST_VERSION_MINOR}.${IPP_LATEST_VERSION_BUILD}]")
- status(" at:" "${IPP_ROOT_DIR}")
-else()
- status(" Use IPP:" WITH_IPP AND NOT IPP_FOUND THEN "IPP not found" ELSE NO)
-endif()
+if(DEFINED WITH_IPP)
+ if(WITH_IPP AND IPP_FOUND)
+ status(" Use IPP:" "${IPP_LATEST_VERSION_STR} [${IPP_LATEST_VERSION_MAJOR}.${IPP_LATEST_VERSION_MINOR}.${IPP_LATEST_VERSION_BUILD}]")
+ status(" at:" "${IPP_ROOT_DIR}")
+ else()
+ status(" Use IPP:" WITH_IPP AND NOT IPP_FOUND THEN "IPP not found" ELSE NO)
+ endif()
+endif(DEFINED WITH_IPP)
+
+if(DEFINED WITH_TBB)
+ status(" Use TBB:" HAVE_TBB THEN "YES (ver ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} interface ${TBB_INTERFACE_VERSION})" ELSE NO)
+endif(DEFINED WITH_TBB)
+
+if(DEFINED WITH_CUDA)
+ status(" Use Cuda:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING})" ELSE NO)
+endif(DEFINED WITH_CUDA)
-status(" Use TBB:" HAVE_TBB THEN YES ELSE NO)
-status(" Use Cuda:" HAVE_CUDA THEN YES ELSE NO)
-status(" Use Eigen:" HAVE_EIGEN THEN YES ELSE NO)
+status(" Use OpenCL:" HAVE_OPENCL THEN YES ELSE NO)
+
+status(" Use Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO)
status(" Use Clp:" HAVE_CLP THEN YES ELSE NO)
-status("")
-status(" Python interpreter:" PYTHON_EXECUTABLE THEN "${PYTHON_EXECUTABLE} (ver ${PYTHON_VERSION_MAJOR_MINOR})" ELSE NO)
-# interfaces to other languages
-status("")
-status(" Interfaces:")
-status(" Python:" HAVE_opencv_python THEN YES ELSE NO)
-status(" Python numpy:" PYTHON_USE_NUMPY THEN YES ELSE "NO (Python wrappers can not be generated)")
-if(ANDROID)
- status(" Java:" HAVE_opencv_java THEN YES ELSE NO)
+if(HAVE_CUDA)
+ status("")
+ status(" NVIDIA CUDA:" "(ver ${CUDA_VERSION_STRING})")
+
+ status(" Use CUFFT:" HAVE_CUFFT THEN YES ELSE NO)
+ status(" Use CUBLAS:" HAVE_CUBLAS THEN YES ELSE NO)
+ status(" NVIDIA GPU arch:" ${OPENCV_CUDA_ARCH_BIN})
+ status(" NVIDIA PTX archs:" ${OPENCV_CUDA_ARCH_BIN})
+ status(" NVIDIA GPU features:" ${OPENCV_CUDA_ARCH_FEATURES})
endif()
-# documentation
+# ========================== python ==========================
status("")
-status(" Documentation:")
-status(" Sphinx:" HAVE_SPHINX THEN "${SPHINX_BUILD} (ver ${SPHINX_VERSION})" ELSE NO)
-status(" PdfLaTeX compiler:" PDFLATEX_COMPILER THEN "${PDFLATEX_COMPILER}" ELSE NO)
-if(BUILD_DOCS AND HAVE_SPHINX)
- status(" Build Documentation:" PDFLATEX_COMPILER THEN YES ELSE "YES (only HTML without math expressions)")
-else()
- status(" Build Documentation:" NO)
+status(" Python:")
+status(" Interpreter:" PYTHON_EXECUTABLE THEN "${PYTHON_EXECUTABLE} (ver ${PYTHON_VERSION_FULL})" ELSE NO)
+if(BUILD_opencv_python)
+ if(PYTHONLIBS_VERSION_STRING)
+ status(" Libraries:" HAVE_opencv_python THEN "${PYTHON_LIBRARIES} (ver ${PYTHONLIBS_VERSION_STRING})" ELSE NO)
+ else()
+ status(" Libraries:" HAVE_opencv_python THEN ${PYTHON_LIBRARIES} ELSE NO)
+ endif()
+ status(" numpy:" PYTHON_USE_NUMPY THEN "${PYTHON_NUMPY_INCLUDE_DIR} (ver ${PYTHON_NUMPY_VERSION})" ELSE "NO (Python wrappers can not be generated)")
+ status(" packages path:" PYTHON_EXECUTABLE THEN "${PYTHON_PACKAGES_PATH}" ELSE "-")
endif()
-# samples and tests
+# ========================== documentation ==========================
+if(BUILD_DOCS)
+ status("")
+ status(" Documentation:")
+ if(HAVE_SPHINX)
+ status(" Build Documentation:" PDFLATEX_COMPILER THEN YES ELSE "YES (only HTML and without math expressions)")
+ else()
+ status(" Build Documentation:" NO)
+ endif()
+ status(" Sphinx:" HAVE_SPHINX THEN "${SPHINX_BUILD} (ver ${SPHINX_VERSION})" ELSE NO)
+ status(" PdfLaTeX compiler:" PDFLATEX_COMPILER THEN "${PDFLATEX_COMPILER}" ELSE NO)
+endif()
+
+# ========================== samples and tests ==========================
status("")
status(" Tests and samples:")
status(" Tests:" BUILD_TESTS AND HAVE_opencv_ts THEN YES ELSE NO)
status(" Examples:" BUILD_EXAMPLES THEN YES ELSE NO)
if(ANDROID)
- status(" Android tests:" BUILD_TESTS AND CAN_BUILD_ANDROID_PROJECTS THEN YES ELSE NO)
- status(" Android examples:" BUILD_ANDROID_EXAMPLES THEN YES ELSE NO)
+ status(" Android tests:" BUILD_TESTS AND CAN_BUILD_ANDROID_PROJECTS THEN YES ELSE NO)
+ status(" Android examples:" BUILD_ANDROID_EXAMPLES AND CAN_BUILD_ANDROID_PROJECTS THEN YES ELSE NO)
endif()
-#auxiliary
+# ========================== auxiliary ==========================
status("")
status(" Install path:" "${CMAKE_INSTALL_PREFIX}")
status("")
status("-----------------------------------------------------------------")
status("")
+ocv_finalize_status()
+
# ----------------------------------------------------------------------------
# Warn in the case of in-source build
# ----------------------------------------------------------------------------