2011-06-14 18:11:16 +08:00
# ----------------------------------------------------------------------------
# Root CMake file for OpenCV
#
# From the off-tree build directory, invoke:
# $ cmake <PATH_TO_OPENCV_ROOT>
#
# ----------------------------------------------------------------------------
2017-04-15 11:55:46 +08:00
# Disable in-source builds to prevent source tree corruption.
if ( " ${CMAKE_SOURCE_DIR}" STREQUAL " ${CMAKE_BINARY_DIR}" )
message ( FATAL_ERROR "
F A T A L : I n - s o u r c e b u i l d s a r e n o t a l l o w e d .
2017-08-20 23:21:39 +08:00
Y o u s h o u l d c r e a t e a s e p a r a t e d i r e c t o r y f o r b u i l d f i l e s .
2017-04-15 11:55:46 +08:00
" )
endif ( )
2014-07-01 16:07:01 +08:00
2013-07-22 16:59:56 +08:00
include ( cmake/OpenCVMinDepVersions.cmake )
2013-07-22 17:29:07 +08:00
if ( CMAKE_GENERATOR MATCHES Xcode AND XCODE_VERSION VERSION_GREATER 4.3 )
2017-07-21 19:04:47 +08:00
cmake_minimum_required ( VERSION 3.0 FATAL_ERROR )
2015-02-21 00:47:45 +08:00
elseif ( CMAKE_SYSTEM_NAME MATCHES WindowsPhone OR CMAKE_SYSTEM_NAME MATCHES WindowsStore )
cmake_minimum_required ( VERSION 3.1 FATAL_ERROR )
#Required to resolve linker error issues due to incompatibility with CMake v3.0+ policies.
#CMake fails to find _fseeko() which leads to subsequent linker error.
#See details here: http://www.cmake.org/Wiki/CMake/Policies
cmake_policy ( VERSION 2.8 )
2013-07-22 17:29:07 +08:00
else ( )
cmake_minimum_required ( VERSION "${MIN_VER_CMAKE}" FATAL_ERROR )
2012-01-03 21:48:12 +08:00
endif ( )
2019-07-18 18:22:02 +08:00
#
# Configure CMake policies
#
2014-11-18 20:39:59 +08:00
if ( POLICY CMP0026 )
2017-08-17 06:49:17 +08:00
cmake_policy ( SET CMP0026 NEW )
2014-11-18 20:39:59 +08:00
endif ( )
2016-06-20 22:19:13 +08:00
if ( POLICY CMP0042 )
2019-07-18 18:22:02 +08:00
cmake_policy ( SET CMP0042 NEW ) # CMake 3.0+ (2.8.12): MacOS "@rpath" in target's install name
2015-04-07 04:37:06 +08:00
endif ( )
2017-06-09 23:24:14 +08:00
if ( POLICY CMP0046 )
2019-07-18 18:22:02 +08:00
cmake_policy ( SET CMP0046 NEW ) # warn about non-existed dependencies
2017-06-09 23:24:14 +08:00
endif ( )
2016-09-07 23:02:36 +08:00
if ( POLICY CMP0051 )
cmake_policy ( SET CMP0051 NEW )
endif ( )
2017-03-23 23:12:48 +08:00
2018-10-21 23:02:40 +08:00
if ( POLICY CMP0054 ) # CMake 3.1: Only interpret if() arguments as variables or keywords when unquoted.
cmake_policy ( SET CMP0054 NEW )
endif ( )
2017-03-23 23:12:48 +08:00
if ( POLICY CMP0056 )
2019-07-18 18:22:02 +08:00
cmake_policy ( SET CMP0056 NEW ) # try_compile(): link flags
2017-03-23 23:12:48 +08:00
endif ( )
2016-09-07 23:02:36 +08:00
2020-03-23 09:15:49 +08:00
if ( POLICY CMP0066 )
cmake_policy ( SET CMP0066 NEW ) # CMake 3.7: try_compile(): use per-config flags, like CMAKE_CXX_FLAGS_RELEASE
endif ( )
2017-07-03 19:39:25 +08:00
if ( POLICY CMP0067 )
2019-07-18 18:22:02 +08:00
cmake_policy ( SET CMP0067 NEW ) # CMake 3.8: try_compile(): honor language standard variables (like C++11)
2017-06-21 19:33:47 +08:00
endif ( )
2019-03-26 00:24:49 +08:00
if ( POLICY CMP0068 )
cmake_policy ( SET CMP0068 NEW ) # CMake 3.9+: `RPATH` settings on macOS do not affect `install_name`.
endif ( )
2019-08-20 21:19:37 +08:00
if ( POLICY CMP0075 )
cmake_policy ( SET CMP0075 NEW ) # CMake 3.12+: Include file check macros honor `CMAKE_REQUIRED_LIBRARIES`
endif ( )
2020-01-07 19:36:35 +08:00
if ( POLICY CMP0077 )
cmake_policy ( SET CMP0077 NEW ) # CMake 3.13+: option() honors normal variables.
endif ( )
2019-07-18 18:22:02 +08:00
#
# Configure OpenCV CMake hooks
#
2017-07-03 19:39:25 +08:00
include ( cmake/OpenCVUtils.cmake )
2018-01-29 23:02:00 +08:00
ocv_cmake_reset_hooks ( )
ocv_check_environment_variables ( OPENCV_CMAKE_HOOKS_DIR )
if ( DEFINED OPENCV_CMAKE_HOOKS_DIR )
foreach ( __dir ${ OPENCV_CMAKE_HOOKS_DIR } )
get_filename_component ( __dir "${__dir}" ABSOLUTE )
ocv_cmake_hook_register_dir ( ${ __dir } )
endforeach ( )
endif ( )
ocv_cmake_hook ( CMAKE_INIT )
2017-07-03 19:39:25 +08:00
2019-07-18 18:22:02 +08:00
# must go before the project()/enable_language() commands
2016-01-11 22:54:14 +08:00
ocv_update ( CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE )
2013-07-22 17:55:49 +08:00
if ( DEFINED CMAKE_BUILD_TYPE )
2019-07-18 18:22:02 +08:00
set_property ( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "${CMAKE_CONFIGURATION_TYPES}" )
2011-06-28 15:20:30 +08:00
endif ( )
2011-06-28 13:18:53 +08:00
2019-07-18 18:22:02 +08:00
option ( ENABLE_PIC "Generate position independent code (necessary for shared libraries)" TRUE )
set ( CMAKE_POSITION_INDEPENDENT_CODE ${ ENABLE_PIC } )
2012-02-03 19:26:49 +08:00
2019-07-18 18:22:02 +08:00
ocv_cmake_hook ( PRE_CMAKE_BOOTSTRAP )
2019-07-25 04:12:09 +08:00
2019-07-18 18:22:02 +08:00
# Bootstap CMake system: setup CMAKE_SYSTEM_NAME and other vars
enable_language ( CXX C )
2019-07-25 04:12:09 +08:00
2019-07-18 18:22:02 +08:00
ocv_cmake_hook ( POST_CMAKE_BOOTSTRAP )
2019-07-25 04:12:09 +08:00
2019-07-18 18:22:02 +08:00
if ( NOT OPENCV_SKIP_CMAKE_SYSTEM_FILE )
include ( "cmake/platforms/OpenCV-${CMAKE_SYSTEM_NAME}.cmake" OPTIONAL RESULT_VARIABLE "OPENCV_CMAKE_SYSTEM_FILE" )
if ( NOT OPENCV_CMAKE_SYSTEM_FILE )
message ( STATUS "OpenCV: system-specific configuration file is not found: '${CMAKE_SYSTEM_NAME}'" )
2019-07-25 04:12:09 +08:00
endif ( )
2019-07-18 18:22:02 +08:00
endif ( )
2019-07-25 04:12:09 +08:00
2019-07-18 18:22:02 +08:00
if ( CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT ) # https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.html
if ( NOT CMAKE_TOOLCHAIN_FILE )
if ( WIN32 )
set ( CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory" FORCE )
else ( )
set ( CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory" FORCE )
endif ( )
else ( )
# any cross-compiling
set ( CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory" FORCE )
2019-07-25 04:12:09 +08:00
endif ( )
endif ( )
2019-07-18 18:22:02 +08:00
enable_testing ( )
project ( OpenCV CXX C )
2013-08-07 16:53:48 +08:00
if ( MSVC )
set ( CMAKE_USE_RELATIVE_PATHS ON CACHE INTERNAL "" FORCE )
endif ( )
2016-01-15 19:03:48 +08:00
ocv_cmake_eval ( DEBUG_PRE ONCE )
2013-10-18 03:42:37 +08:00
ocv_clear_vars ( OpenCVModules_TARGETS )
2017-03-15 18:19:59 +08:00
include ( cmake/OpenCVDownload.cmake )
2018-02-01 21:30:23 +08:00
set ( BUILD_LIST "" CACHE STRING "Build only listed modules (comma-separated, e.g. 'videoio,dnn,ts')" )
2012-05-19 21:48:36 +08:00
# ----------------------------------------------------------------------------
# Break in case of popular CMake configuration mistakes
# ----------------------------------------------------------------------------
if ( NOT CMAKE_SIZEOF_VOID_P GREATER 0 )
2017-08-23 02:44:53 +08:00
message ( FATAL_ERROR " CMake fails to determine the bitness of the target platform.
2017-08-08 23:32:04 +08:00
P l e a s e c h e c k y o u r C M a k e a n d c o m p i l e r i n s t a l l a t i o n . I f y o u a r e c r o s s - c o m p i l i n g t h e n e n s u r e t h a t y o u r C M a k e t o o l c h a i n f i l e c o r r e c t l y s e t s t h e c o m p i l e r d e t a i l s . " )
2012-05-19 21:48:36 +08:00
endif ( )
2012-01-03 21:48:12 +08:00
# ----------------------------------------------------------------------------
2012-02-03 19:26:49 +08:00
# Detect compiler and target platform architecture
2011-06-29 14:27:08 +08:00
# ----------------------------------------------------------------------------
2017-07-03 19:39:25 +08:00
OCV_OPTION ( ENABLE_CXX11 "Enable C++11 compilation mode" "${OPENCV_CXX11}" )
2012-09-15 19:45:27 +08:00
include ( cmake/OpenCVDetectCXXCompiler.cmake )
2018-01-29 23:02:00 +08:00
ocv_cmake_hook ( POST_DETECT_COMPILER )
2012-01-03 21:48:12 +08:00
2012-02-22 23:29:23 +08:00
# Add these standard paths to the search paths for FIND_LIBRARY
# to find libraries from these locations first
if ( UNIX AND NOT ANDROID )
if ( X86_64 OR CMAKE_SIZEOF_VOID_P EQUAL 8 )
if ( EXISTS /lib64 )
list ( APPEND CMAKE_LIBRARY_PATH /lib64 )
else ( )
list ( APPEND CMAKE_LIBRARY_PATH /lib )
endif ( )
if ( EXISTS /usr/lib64 )
list ( APPEND CMAKE_LIBRARY_PATH /usr/lib64 )
else ( )
list ( APPEND CMAKE_LIBRARY_PATH /usr/lib )
endif ( )
elseif ( X86 OR CMAKE_SIZEOF_VOID_P EQUAL 4 )
if ( EXISTS /lib32 )
list ( APPEND CMAKE_LIBRARY_PATH /lib32 )
else ( )
list ( APPEND CMAKE_LIBRARY_PATH /lib )
endif ( )
if ( EXISTS /usr/lib32 )
list ( APPEND CMAKE_LIBRARY_PATH /usr/lib32 )
else ( )
list ( APPEND CMAKE_LIBRARY_PATH /usr/lib )
endif ( )
endif ( )
endif ( )
2013-05-14 22:20:01 +08:00
# Add these standard paths to the search paths for FIND_PATH
# to find include files from these locations first
if ( MINGW )
if ( EXISTS /mingw )
2013-05-14 22:31:01 +08:00
list ( APPEND CMAKE_INCLUDE_PATH /mingw )
2013-05-14 22:20:01 +08:00
endif ( )
if ( EXISTS /mingw32 )
2013-05-14 22:31:01 +08:00
list ( APPEND CMAKE_INCLUDE_PATH /mingw32 )
2013-05-14 22:20:01 +08:00
endif ( )
if ( EXISTS /mingw64 )
2013-05-14 22:31:01 +08:00
list ( APPEND CMAKE_INCLUDE_PATH /mingw64 )
2013-05-14 22:20:01 +08:00
endif ( )
endif ( )
2012-01-03 21:48:12 +08:00
2011-07-05 00:18:12 +08:00
# ----------------------------------------------------------------------------
2012-02-03 19:26:49 +08:00
# OpenCV cmake options
2011-07-05 00:18:12 +08:00
# ----------------------------------------------------------------------------
2012-01-03 21:48:12 +08:00
2016-08-05 00:23:49 +08:00
OCV_OPTION ( OPENCV_ENABLE_NONFREE "Enable non-free algorithms" OFF )
2017-12-07 23:30:33 +08:00
# 3rd party libs
2018-11-03 19:57:34 +08:00
OCV_OPTION ( OPENCV_FORCE_3RDPARTY_BUILD "Force using 3rdparty code from source" OFF )
OCV_OPTION ( BUILD_ZLIB "Build zlib from source" ( WIN32 OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD ) )
OCV_OPTION ( BUILD_TIFF "Build libtiff from source" ( WIN32 OR ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD ) )
OCV_OPTION ( BUILD_JASPER "Build libjasper from source" ( WIN32 OR ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD ) )
OCV_OPTION ( BUILD_JPEG "Build libjpeg from source" ( WIN32 OR ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD ) )
OCV_OPTION ( BUILD_PNG "Build libpng from source" ( WIN32 OR ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD ) )
OCV_OPTION ( BUILD_OPENEXR "Build openexr from source" ( ( ( WIN32 OR ANDROID OR APPLE ) AND NOT WINRT ) OR OPENCV_FORCE_3RDPARTY_BUILD ) )
OCV_OPTION ( BUILD_WEBP "Build WebP from source" ( ( ( WIN32 OR ANDROID OR APPLE ) AND NOT WINRT ) OR OPENCV_FORCE_3RDPARTY_BUILD ) )
OCV_OPTION ( BUILD_TBB "Download and build TBB from source" ( ANDROID OR OPENCV_FORCE_3RDPARTY_BUILD ) )
OCV_OPTION ( BUILD_IPP_IW "Build IPP IW from source" ( NOT MINGW OR OPENCV_FORCE_3RDPARTY_BUILD ) IF ( X86_64 OR X86 ) AND NOT WINRT )
2019-07-03 23:06:59 +08:00
OCV_OPTION ( BUILD_ITT "Build Intel ITT from source"
( N O T MINGW O R O P E N C V _ F O R C E _ 3 R D P A R T Y _ B U I L D )
IF ( X86_64 OR X86 OR ARM OR AARCH64 OR PPC64 OR PPC64LE ) A N D N O T W I N R T A N D N O T A P P L E _ F R A M E W O R K
)
2017-12-07 23:30:33 +08:00
2012-01-03 21:48:12 +08:00
# Optional 3rd party components
# ===================================================
2018-12-07 20:57:25 +08:00
OCV_OPTION ( WITH_1394 "Include IEEE1394 support" ON
V I S I B L E _ I F N O T A N D R O I D A N D N O T I O S A N D N O T W I N R T
V E R I F Y H A V E _ D C 1 3 9 4 )
OCV_OPTION ( WITH_AVFOUNDATION "Use AVFoundation for Video I/O (iOS/Mac)" ON
V I S I B L E _ I F APPLE
V E R I F Y H A V E _ A V F O U N D A T I O N )
OCV_OPTION ( WITH_CARBON "Use Carbon for UI instead of Cocoa (OBSOLETE)" OFF
2019-08-05 06:24:33 +08:00
VISIBLE_IF ( APPLE OR HAVE_COCOA )
V E R I F Y H A V E _ C A R B O N )
2018-12-07 20:57:25 +08:00
OCV_OPTION ( WITH_CAROTENE "Use NVidia carotene acceleration library for ARM platform" ON
VISIBLE_IF ( ARM OR AARCH64 ) A N D N O T I O S A N D NOT ( CMAKE_VERSION VERSION_LESS "2.8.11" ) )
OCV_OPTION ( WITH_CPUFEATURES "Use cpufeatures Android library" ON
V I S I B L E _ I F A N D R O I D
V E R I F Y H A V E _ C P U F E A T U R E S )
OCV_OPTION ( WITH_VTK "Include VTK library support (and build opencv_viz module eiher)" ON
V I S I B L E _ I F N O T A N D R O I D A N D N O T I O S A N D N O T W I N R T A N D N O T C M A K E _ C R O S S C O M P I L I N G
V E R I F Y H A V E _ V T K )
OCV_OPTION ( WITH_CUDA "Include NVidia Cuda Runtime support" OFF
V I S I B L E _ I F N O T I O S A N D N O T W I N R T
V E R I F Y H A V E _ C U D A )
OCV_OPTION ( WITH_CUFFT "Include NVidia Cuda Fast Fourier Transform (FFT) library support" WITH_CUDA
V I S I B L E _ I F W I T H _ C U D A
V E R I F Y H A V E _ C U F F T )
OCV_OPTION ( WITH_CUBLAS "Include NVidia Cuda Basic Linear Algebra Subprograms (BLAS) library support" WITH_CUDA
V I S I B L E _ I F W I T H _ C U D A
V E R I F Y H A V E _ C U B L A S )
OCV_OPTION ( WITH_NVCUVID "Include NVidia Video Decoding library support" WITH_CUDA
V I S I B L E _ I F W I T H _ C U D A
V E R I F Y H A V E _ N V C U V I D )
2019-05-21 02:05:42 +08:00
OCV_OPTION ( WITH_EIGEN "Include Eigen2/Eigen3 support" ( NOT CV_DISABLE_OPTIMIZATION AND NOT CMAKE_CROSSCOMPILING )
V I S I B L E _ I F N O T W I N R T
2018-12-07 20:57:25 +08:00
V E R I F Y H A V E _ E I G E N )
OCV_OPTION ( WITH_VFW "Include Video for Windows support (deprecated, consider using MSMF)" OFF
V I S I B L E _ I F WIN32
V E R I F Y H A V E _ V F W )
2019-01-30 23:43:23 +08:00
OCV_OPTION ( WITH_FFMPEG "Include FFMPEG support" ( NOT ANDROID )
V I S I B L E _ I F N O T I O S A N D N O T W I N R T
2018-12-07 20:57:25 +08:00
V E R I F Y H A V E _ F F M P E G )
OCV_OPTION ( WITH_GSTREAMER "Include Gstreamer support" ON
V I S I B L E _ I F N O T A N D R O I D A N D N O T I O S A N D N O T W I N R T
V E R I F Y H A V E _ G S T R E A M E R A N D G S T R E A M E R _ B A S E _ V E R S I O N V E R S I O N _ G R E A T E R " 0 . 9 9 " )
OCV_OPTION ( WITH_GSTREAMER_0_10 "Enable Gstreamer 0.10 support (instead of 1.x)" OFF
V I S I B L E _ I F T R U E
V E R I F Y H A V E _ G S T R E A M E R A N D G S T R E A M E R _ B A S E _ V E R S I O N V E R S I O N _ L E S S " 1 . 0 " )
OCV_OPTION ( WITH_GTK "Include GTK support" ON
V I S I B L E _ I F UNIX A N D N O T APPLE A N D N O T A N D R O I D
V E R I F Y H A V E _ G T K )
OCV_OPTION ( WITH_GTK_2_X "Use GTK version 2" OFF
V I S I B L E _ I F UNIX A N D N O T APPLE A N D N O T A N D R O I D
V E R I F Y H A V E _ G T K A N D N O T H A V E _ G T K 3 )
OCV_OPTION ( WITH_IPP "Include Intel IPP support" ( NOT MINGW AND NOT CV_DISABLE_OPTIMIZATION )
VISIBLE_IF ( X86_64 OR X86 ) A N D N O T W I N R T A N D N O T I O S
V E R I F Y H A V E _ I P P )
OCV_OPTION ( WITH_HALIDE "Include Halide support" OFF
V I S I B L E _ I F T R U E
V E R I F Y H A V E _ H A L I D E )
OCV_OPTION ( WITH_INF_ENGINE "Include Intel Inference Engine support" OFF
V I S I B L E _ I F T R U E
V E R I F Y I N F _ E N G I N E _ T A R G E T )
2019-12-02 21:16:06 +08:00
OCV_OPTION ( WITH_NGRAPH "Include nGraph support" WITH_INF_ENGINE
V I S I B L E _ I F T R U E
V E R I F Y T A R G E T n g r a p h : : n g r a p h )
2018-12-07 20:57:25 +08:00
OCV_OPTION ( WITH_JASPER "Include JPEG2K support" ON
V I S I B L E _ I F N O T I O S
V E R I F Y H A V E _ J A S P E R )
OCV_OPTION ( WITH_JPEG "Include JPEG support" ON
V I S I B L E _ I F T R U E
V E R I F Y H A V E _ J P E G )
OCV_OPTION ( WITH_WEBP "Include WebP support" ON
V I S I B L E _ I F N O T W I N R T
V E R I F Y H A V E _ W E B P )
2019-06-11 01:04:23 +08:00
OCV_OPTION ( WITH_OPENEXR "Include ILM support via OpenEXR" BUILD_OPENEXR OR NOT CMAKE_CROSSCOMPILING
V I S I B L E _ I F N O T A P P L E _ F R A M E W O R K A N D N O T W I N R T
2018-12-07 20:57:25 +08:00
V E R I F Y H A V E _ O P E N E X R )
OCV_OPTION ( WITH_OPENGL "Include OpenGL support" OFF
V I S I B L E _ I F N O T A N D R O I D A N D N O T W I N R T
V E R I F Y H A V E _ O P E N G L )
OCV_OPTION ( WITH_OPENVX "Include OpenVX support" OFF
V I S I B L E _ I F T R U E
V E R I F Y H A V E _ O P E N V X )
OCV_OPTION ( WITH_OPENNI "Include OpenNI support" OFF
V I S I B L E _ I F N O T A N D R O I D A N D N O T I O S A N D N O T W I N R T
V E R I F Y H A V E _ O P E N N I )
OCV_OPTION ( WITH_OPENNI2 "Include OpenNI2 support" OFF
V I S I B L E _ I F N O T A N D R O I D A N D N O T I O S A N D N O T W I N R T
V E R I F Y H A V E _ O P E N N I 2 )
OCV_OPTION ( WITH_PNG "Include PNG support" ON
V I S I B L E _ I F T R U E
V E R I F Y H A V E _ P N G )
OCV_OPTION ( WITH_GDCM "Include DICOM support" OFF
V I S I B L E _ I F T R U E
V E R I F Y H A V E _ G D C M )
OCV_OPTION ( WITH_PVAPI "Include Prosilica GigE support" OFF
V I S I B L E _ I F N O T A N D R O I D A N D N O T I O S A N D N O T W I N R T
V E R I F Y H A V E _ P V A P I )
OCV_OPTION ( WITH_GIGEAPI "Include Smartek GigE support" OFF
V I S I B L E _ I F N O T A N D R O I D A N D N O T I O S A N D N O T W I N R T
V E R I F Y H A V E _ G I G E _ A P I )
OCV_OPTION ( WITH_ARAVIS "Include Aravis GigE support" OFF
V I S I B L E _ I F N O T A N D R O I D A N D N O T I O S A N D N O T W I N R T A N D N O T WIN32
V E R I F Y H A V E _ A R A V I S _ A P I )
OCV_OPTION ( WITH_QT "Build with Qt Backend support" OFF
V I S I B L E _ I F N O T A N D R O I D A N D N O T I O S A N D N O T W I N R T
V E R I F Y H A V E _ Q T )
OCV_OPTION ( WITH_WIN32UI "Build with Win32 UI Backend support" ON
V I S I B L E _ I F WIN32 A N D N O T W I N R T
V E R I F Y H A V E _ W I N 3 2 U I )
OCV_OPTION ( WITH_QUICKTIME "Use QuickTime for Video I/O (OBSOLETE)" OFF
V I S I B L E _ I F APPLE
V E R I F Y H A V E _ Q U I C K T I M E )
OCV_OPTION ( WITH_QTKIT "Use QTKit Video I/O backend" OFF
V I S I B L E _ I F APPLE
V E R I F Y H A V E _ Q T K I T )
OCV_OPTION ( WITH_TBB "Include Intel TBB support" OFF
V I S I B L E _ I F N O T I O S A N D N O T W I N R T
V E R I F Y H A V E _ T B B )
OCV_OPTION ( WITH_OPENMP "Include OpenMP support" OFF
V I S I B L E _ I F T R U E
V E R I F Y H A V E _ O P E N M P )
OCV_OPTION ( WITH_CSTRIPES "Include C= support" OFF
V I S I B L E _ I F WIN32 A N D N O T W I N R T
V E R I F Y H A V E _ C S T R I P E S )
OCV_OPTION ( WITH_PTHREADS_PF "Use pthreads-based parallel_for" ON
V I S I B L E _ I F N O T WIN32 O R MINGW
V E R I F Y H A V E _ P T H R E A D S _ P F )
OCV_OPTION ( WITH_TIFF "Include TIFF support" ON
V I S I B L E _ I F N O T I O S
V E R I F Y H A V E _ T I F F )
OCV_OPTION ( WITH_UNICAP "Include Unicap support (GPL)" OFF
V I S I B L E _ I F UNIX A N D N O T APPLE A N D N O T A N D R O I D
V E R I F Y H A V E _ U N I C A P )
OCV_OPTION ( WITH_V4L "Include Video 4 Linux support" ON
V I S I B L E _ I F UNIX A N D N O T A N D R O I D A N D N O T APPLE
V E R I F Y H A V E _ C A M V 4 L O R H A V E _ C A M V 4 L 2 O R H A V E _ V I D E O I O )
OCV_OPTION ( WITH_LIBV4L "Use libv4l for Video 4 Linux support" OFF
V I S I B L E _ I F UNIX A N D N O T A N D R O I D A N D N O T APPLE
V E R I F Y H A V E _ L I B V 4 L )
OCV_OPTION ( WITH_DSHOW "Build VideoIO with DirectShow support" ON
V I S I B L E _ I F WIN32 A N D N O T A R M A N D N O T W I N R T
V E R I F Y H A V E _ D S H O W )
2018-12-13 19:53:48 +08:00
OCV_OPTION ( WITH_MSMF "Build VideoIO with Media Foundation support" NOT MINGW
2018-12-07 20:57:25 +08:00
V I S I B L E _ I F WIN32
V E R I F Y H A V E _ M S M F )
2018-12-13 19:53:48 +08:00
OCV_OPTION ( WITH_MSMF_DXVA "Enable hardware acceleration in Media Foundation backend" WITH_MSMF
V I S I B L E _ I F WIN32
V E R I F Y H A V E _ M S M F _ D X V A )
2018-12-07 20:57:25 +08:00
OCV_OPTION ( WITH_XIMEA "Include XIMEA cameras support" OFF
V I S I B L E _ I F N O T A N D R O I D A N D N O T W I N R T
V E R I F Y H A V E _ X I M E A )
OCV_OPTION ( WITH_XINE "Include Xine support (GPL)" OFF
V I S I B L E _ I F UNIX A N D N O T APPLE A N D N O T A N D R O I D
V E R I F Y H A V E _ X I N E )
OCV_OPTION ( WITH_CLP "Include Clp support (EPL)" OFF
V I S I B L E _ I F T R U E
V E R I F Y H A V E _ C L P )
OCV_OPTION ( WITH_OPENCL "Include OpenCL Runtime support" ( NOT ANDROID AND NOT CV_DISABLE_OPTIMIZATION )
V I S I B L E _ I F N O T I O S A N D N O T W I N R T
V E R I F Y H A V E _ O P E N C L )
OCV_OPTION ( WITH_OPENCL_SVM "Include OpenCL Shared Virtual Memory support" OFF
V I S I B L E _ I F T R U E
V E R I F Y H A V E _ O P E N C L _ S V M ) # experimental
OCV_OPTION ( WITH_OPENCLAMDFFT "Include AMD OpenCL FFT library support" ON
V I S I B L E _ I F N O T A N D R O I D A N D N O T I O S A N D N O T W I N R T
V E R I F Y H A V E _ C L A M D F F T )
OCV_OPTION ( WITH_OPENCLAMDBLAS "Include AMD OpenCL BLAS library support" ON
V I S I B L E _ I F N O T A N D R O I D A N D N O T I O S A N D N O T W I N R T
V E R I F Y H A V E _ C L A M D B L A S )
OCV_OPTION ( WITH_DIRECTX "Include DirectX support" ON
V I S I B L E _ I F WIN32 A N D N O T W I N R T
V E R I F Y H A V E _ D I R E C T X )
2019-03-24 23:34:09 +08:00
OCV_OPTION ( WITH_OPENCL_D3D11_NV "Include NVIDIA OpenCL D3D11 support" WITH_DIRECTX
V I S I B L E _ I F WIN32 A N D N O T W I N R T
V E R I F Y H A V E _ O P E N C L _ D 3 D 1 1 _ N V )
2018-12-07 20:57:25 +08:00
OCV_OPTION ( WITH_INTELPERC "Include Intel Perceptual Computing support" OFF
V I S I B L E _ I F WIN32 A N D N O T W I N R T
V E R I F Y H A V E _ I N T E L P E R C )
OCV_OPTION ( WITH_VA "Include VA support" OFF
V I S I B L E _ I F UNIX A N D N O T A N D R O I D
V E R I F Y H A V E _ V A )
OCV_OPTION ( WITH_VA_INTEL "Include Intel VA-API/OpenCL support" OFF
V I S I B L E _ I F UNIX A N D N O T A N D R O I D
V E R I F Y H A V E _ V A _ I N T E L )
OCV_OPTION ( WITH_MFX "Include Intel Media SDK support" OFF
VISIBLE_IF ( UNIX AND NOT ANDROID ) OR ( WIN32 AND NOT WINRT AND NOT MINGW )
V E R I F Y H A V E _ M F X )
OCV_OPTION ( WITH_GDAL "Include GDAL Support" OFF
V I S I B L E _ I F N O T A N D R O I D A N D N O T I O S A N D N O T W I N R T
V E R I F Y H A V E _ G D A L )
OCV_OPTION ( WITH_GPHOTO2 "Include gPhoto2 library support" OFF
V I S I B L E _ I F UNIX A N D N O T A N D R O I D A N D N O T I O S
V E R I F Y H A V E _ G P H O T O 2 )
OCV_OPTION ( WITH_LAPACK "Include Lapack library support" ( NOT CV_DISABLE_OPTIMIZATION )
V I S I B L E _ I F N O T A N D R O I D A N D N O T I O S
V E R I F Y H A V E _ L A P A C K )
OCV_OPTION ( WITH_ITT "Include Intel ITT support" ON
V I S I B L E _ I F N O T A P P L E _ F R A M E W O R K
V E R I F Y H A V E _ I T T )
OCV_OPTION ( WITH_PROTOBUF "Enable libprotobuf" ON
V I S I B L E _ I F T R U E
V E R I F Y H A V E _ P R O T O B U F )
OCV_OPTION ( WITH_IMGCODEC_HDR "Include HDR support" ON
V I S I B L E _ I F T R U E
V E R I F Y H A V E _ I M G C O D E C _ H D R )
OCV_OPTION ( WITH_IMGCODEC_SUNRASTER "Include SUNRASTER support" ON
V I S I B L E _ I F T R U E
V E R I F Y H A V E _ I M G C O D E C _ S U N R A S T E R )
OCV_OPTION ( WITH_IMGCODEC_PXM "Include PNM (PBM,PGM,PPM) and PAM formats support" ON
V I S I B L E _ I F T R U E
V E R I F Y H A V E _ I M G C O D E C _ P X M )
OCV_OPTION ( WITH_QUIRC "Include library QR-code decoding" ON
V I S I B L E _ I F T R U E
V E R I F Y H A V E _ Q U I R C )
2020-03-09 22:59:23 +08:00
OCV_OPTION ( WITH_TENGINE "Include Arm Inference Tengine support" OFF
2020-03-20 18:10:39 +08:00
VISIBLE_IF ( ARM OR AARCH64 ) AND ( UNIX OR ANDROID ) A N D N O T I O S
2020-03-09 22:59:23 +08:00
V E R I F Y H A V E _ T E N G I N E )
2012-01-03 21:48:12 +08:00
# OpenCV build components
# ===================================================
2015-12-16 22:28:03 +08:00
OCV_OPTION ( BUILD_SHARED_LIBS "Build shared libraries (.dll/.so) instead of static ones (.lib/.a)" NOT ( ANDROID OR APPLE_FRAMEWORK ) )
OCV_OPTION ( BUILD_opencv_apps "Build utility applications (used for example to train classifiers)" ( NOT ANDROID AND NOT WINRT ) IF ( NOT APPLE_FRAMEWORK ) )
2017-09-25 21:52:07 +08:00
OCV_OPTION ( BUILD_opencv_js "Build JavaScript bindings by Emscripten" OFF )
2018-01-06 13:05:40 +08:00
OCV_OPTION ( BUILD_ANDROID_PROJECTS "Build Android projects providing .apk files" ON IF ANDROID )
2012-01-03 21:48:12 +08:00
OCV_OPTION ( BUILD_ANDROID_EXAMPLES "Build examples for Android platform" ON IF ANDROID )
2018-01-18 21:37:19 +08:00
OCV_OPTION ( BUILD_DOCS "Create build rules for OpenCV Documentation" OFF IF ( NOT WINRT AND NOT APPLE_FRAMEWORK ) )
2012-01-03 21:48:12 +08:00
OCV_OPTION ( BUILD_EXAMPLES "Build all examples" OFF )
2015-02-21 00:47:45 +08:00
OCV_OPTION ( BUILD_PACKAGE "Enables 'make package_source' command" ON IF NOT WINRT )
2018-10-28 21:32:27 +08:00
OCV_OPTION ( BUILD_PERF_TESTS "Build performance tests" NOT INSTALL_CREATE_DISTRIB IF ( NOT APPLE_FRAMEWORK ) )
OCV_OPTION ( BUILD_TESTS "Build accuracy & regression tests" NOT INSTALL_CREATE_DISTRIB IF ( NOT APPLE_FRAMEWORK ) )
2018-02-13 22:34:40 +08:00
OCV_OPTION ( BUILD_WITH_DEBUG_INFO "Include debug info into release binaries ('OFF' means default settings)" OFF )
2017-08-20 23:21:39 +08:00
OCV_OPTION ( BUILD_WITH_STATIC_CRT "Enables use of statically linked CRT for statically linked OpenCV" ON IF MSVC )
2014-12-12 21:21:47 +08:00
OCV_OPTION ( BUILD_WITH_DYNAMIC_IPP "Enables dynamic linking of IPP (only for standalone IPP)" OFF )
2018-01-08 02:16:38 +08:00
OCV_OPTION ( BUILD_FAT_JAVA_LIB "Create Java wrapper exporting all functions of OpenCV library (requires static build of OpenCV modules)" ANDROID IF NOT BUILD_SHARED_LIBS )
2015-05-20 22:59:42 +08:00
OCV_OPTION ( BUILD_ANDROID_SERVICE "Build OpenCV Manager for Google Play" OFF IF ANDROID )
2015-12-16 22:28:03 +08:00
OCV_OPTION ( BUILD_CUDA_STUBS "Build CUDA modules stubs when no CUDA SDK" OFF IF ( NOT APPLE_FRAMEWORK ) )
2017-11-29 21:49:24 +08:00
OCV_OPTION ( BUILD_JAVA "Enable Java support" ( ANDROID OR NOT CMAKE_CROSSCOMPILING ) IF ( ANDROID OR ( NOT APPLE_FRAMEWORK AND NOT WINRT ) ) )
2012-01-03 21:48:12 +08:00
# OpenCV installation options
# ===================================================
2013-08-07 16:53:48 +08:00
OCV_OPTION ( INSTALL_CREATE_DISTRIB "Change install rules to build the distribution package" OFF )
2020-09-09 01:22:26 +08:00
OCV_OPTION ( INSTALL_BIN_EXAMPLES "Install prebuilt examples" WIN32 IF BUILD_EXAMPLES )
2012-01-03 21:48:12 +08:00
OCV_OPTION ( INSTALL_C_EXAMPLES "Install C examples" OFF )
OCV_OPTION ( INSTALL_PYTHON_EXAMPLES "Install Python examples" OFF )
2012-09-17 04:40:17 +08:00
OCV_OPTION ( INSTALL_ANDROID_EXAMPLES "Install Android examples" OFF IF ANDROID )
2015-12-16 22:28:03 +08:00
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 APPLE_FRAMEWORK AND BUILD_SHARED_LIBS ) )
2014-01-27 18:20:30 +08:00
OCV_OPTION ( INSTALL_TESTS "Install accuracy and performance test binaries and test data" OFF )
2012-05-12 21:54:26 +08:00
2012-01-03 21:48:12 +08:00
# OpenCV build options
# ===================================================
2016-11-08 23:00:03 +08:00
OCV_OPTION ( ENABLE_CCACHE "Use ccache" ( UNIX AND NOT IOS AND ( CMAKE_GENERATOR MATCHES "Makefile" OR CMAKE_GENERATOR MATCHES "Ninja" ) ) )
2019-07-31 20:16:23 +08:00
OCV_OPTION ( ENABLE_PRECOMPILED_HEADERS "Use precompiled headers" MSVC IF ( MSVC OR ( NOT IOS AND NOT CMAKE_CROSSCOMPILING ) ) )
2013-07-22 17:55:49 +08:00
OCV_OPTION ( ENABLE_SOLUTION_FOLDERS "Solution folder in Visual Studio or in other IDEs" ( MSVC_IDE OR CMAKE_GENERATOR MATCHES Xcode ) )
2018-03-26 19:30:49 +08:00
OCV_OPTION ( ENABLE_PROFILING "Enable profiling in the GCC compiler (Add flags: -g -pg)" OFF IF CV_GCC )
OCV_OPTION ( ENABLE_COVERAGE "Enable coverage collection with GCov" OFF IF CV_GCC )
2019-04-19 02:50:52 +08:00
OCV_OPTION ( OPENCV_ENABLE_MEMORY_SANITIZER "Better support for memory/address sanitizers" OFF )
2018-03-26 19:30:49 +08:00
OCV_OPTION ( ENABLE_OMIT_FRAME_POINTER "Enable -fomit-frame-pointer for GCC" ON IF CV_GCC )
OCV_OPTION ( ENABLE_POWERPC "Enable PowerPC for GCC" ON IF ( CV_GCC AND CMAKE_SYSTEM_PROCESSOR MATCHES powerpc.* ) )
2019-05-30 23:24:01 +08:00
OCV_OPTION ( ENABLE_FAST_MATH "Enable compiler options for fast math optimizations on FP computations (not recommended)" OFF )
2018-10-24 12:37:31 +08:00
if ( NOT IOS ) # Use CPU_BASELINE instead
2018-03-26 19:30:49 +08:00
OCV_OPTION ( ENABLE_NEON "Enable NEON instructions" ( NEON OR ANDROID_ARM_NEON OR AARCH64 ) IF ( CV_GCC OR CV_CLANG ) AND ( ARM OR AARCH64 OR IOS ) )
OCV_OPTION ( ENABLE_VFPV3 "Enable VFPv3-D32 instructions" OFF IF ( CV_GCC OR CV_CLANG ) AND ( ARM OR AARCH64 OR IOS ) )
2018-10-24 12:37:31 +08:00
endif ( )
2012-04-14 05:50:59 +08:00
OCV_OPTION ( ENABLE_NOISY_WARNINGS "Show all warnings even if they are too noisy" OFF )
2012-01-25 00:55:47 +08:00
OCV_OPTION ( OPENCV_WARNINGS_ARE_ERRORS "Treat warnings as errors" OFF )
2014-06-05 16:29:36 +08:00
OCV_OPTION ( ANDROID_EXAMPLES_WITH_LIBS "Build binaries of Android examples with native libraries" OFF IF ANDROID )
2014-10-03 19:17:28 +08:00
OCV_OPTION ( ENABLE_IMPL_COLLECTION "Collect implementation data on function call" OFF )
2016-08-15 22:12:45 +08:00
OCV_OPTION ( ENABLE_INSTRUMENTATION "Instrument functions to collect calls trace and performance" OFF )
2018-03-26 19:30:49 +08:00
OCV_OPTION ( ENABLE_GNU_STL_DEBUG "Enable GNU STL Debug mode (defines _GLIBCXX_DEBUG)" OFF IF ( ( NOT CMAKE_VERSION VERSION_LESS "2.8.11" ) AND CV_GCC ) )
2017-06-07 17:07:32 +08:00
OCV_OPTION ( ENABLE_BUILD_HARDENING "Enable hardening of the resulting binaries (against security attacks, detects memory corruption, etc)" OFF )
2018-03-26 19:30:49 +08:00
OCV_OPTION ( ENABLE_LTO "Enable Link Time Optimization" OFF IF CV_GCC OR MSVC )
OCV_OPTION ( ENABLE_THIN_LTO "Enable Thin LTO" OFF IF CV_CLANG )
2015-03-16 17:45:21 +08:00
OCV_OPTION ( GENERATE_ABI_DESCRIPTOR "Generate XML file for abi_compliance_checker tool" OFF IF UNIX )
2018-10-22 22:46:54 +08:00
OCV_OPTION ( OPENCV_GENERATE_PKGCONFIG "Generate .pc file for pkg-config build tool (deprecated)" ON IF ( UNIX AND NOT MSVC AND NOT IOS AND NOT ANDROID ) )
2016-09-07 23:02:36 +08:00
OCV_OPTION ( CV_ENABLE_INTRINSICS "Use intrinsic-based optimized code" ON )
OCV_OPTION ( CV_DISABLE_OPTIMIZATION "Disable explicit optimized code (dispatched code/intrinsics/loop unrolling/etc)" OFF )
2017-05-25 23:59:01 +08:00
OCV_OPTION ( CV_TRACE "Enable OpenCV code trace" ON )
2018-11-01 09:37:40 +08:00
OCV_OPTION ( OPENCV_GENERATE_SETUPVARS "Generate setup_vars* scripts" ON IF ( NOT ANDROID AND NOT APPLE_FRAMEWORK ) )
2018-12-07 20:57:25 +08:00
OCV_OPTION ( ENABLE_CONFIG_VERIFICATION "Fail build if actual configuration doesn't match requested (WITH_XXX != HAVE_XXX)" OFF )
2019-10-09 19:06:12 +08:00
OCV_OPTION ( OPENCV_ENABLE_MEMALIGN "Enable posix_memalign or memalign usage" ON )
2014-10-03 19:17:28 +08:00
2018-06-02 16:16:31 +08:00
OCV_OPTION ( ENABLE_PYLINT "Add target with Pylint checks" ( BUILD_DOCS OR BUILD_EXAMPLES ) IF ( NOT CMAKE_CROSSCOMPILING AND NOT APPLE_FRAMEWORK ) )
OCV_OPTION ( ENABLE_FLAKE8 "Add target with Python flake8 checker" ( BUILD_DOCS OR BUILD_EXAMPLES ) IF ( NOT CMAKE_CROSSCOMPILING AND NOT APPLE_FRAMEWORK ) )
2015-12-11 20:28:42 +08:00
2014-10-03 19:17:28 +08:00
if ( ENABLE_IMPL_COLLECTION )
add_definitions ( -DCV_COLLECT_IMPL_DATA )
endif ( )
2011-07-05 00:18:12 +08:00
2019-07-18 18:22:02 +08:00
set ( OPENCV_MATHJAX_RELPATH "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0" CACHE STRING "URI to a MathJax installation" )
2012-02-22 22:04:59 +08:00
2011-06-14 18:11:16 +08:00
# ----------------------------------------------------------------------------
2011-06-30 15:24:35 +08:00
# Get actual OpenCV version number from sources
2011-06-14 18:11:16 +08:00
# ----------------------------------------------------------------------------
2012-09-15 19:45:27 +08:00
include ( cmake/OpenCVVersion.cmake )
2011-06-14 18:11:16 +08:00
2018-01-29 23:02:00 +08:00
ocv_cmake_hook ( POST_OPTIONS )
2011-06-14 18:11:16 +08:00
2012-02-03 19:26:49 +08:00
# ----------------------------------------------------------------------------
# Build & install layouts
# ----------------------------------------------------------------------------
2011-06-29 00:02:09 +08:00
2019-08-29 21:57:42 +08:00
if ( OPENCV_TEST_DATA_PATH )
2015-03-13 00:14:14 +08:00
get_filename_component ( OPENCV_TEST_DATA_PATH ${ OPENCV_TEST_DATA_PATH } ABSOLUTE )
endif ( )
2019-08-29 21:57:42 +08:00
# Save libs and executables in the same place
set ( EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin" CACHE PATH "Output directory for applications" )
2014-12-12 23:47:41 +08:00
2011-06-29 14:27:08 +08:00
if ( ANDROID )
2016-01-11 22:54:14 +08:00
set ( LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib/${ANDROID_NDK_ABI_NAME}" )
ocv_update ( 3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib/${ANDROID_NDK_ABI_NAME}" )
2011-06-29 14:27:08 +08:00
else ( )
2016-01-11 22:54:14 +08:00
set ( LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib" )
2019-08-29 21:57:42 +08:00
ocv_update ( 3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib" )
2012-02-17 04:29:35 +08:00
endif ( )
2017-12-29 12:15:30 +08:00
if ( ANDROID )
2019-08-29 21:57:42 +08:00
if ( ANDROID_ABI MATCHES "NEON" )
set ( ENABLE_NEON ON )
endif ( )
if ( ANDROID_ABI MATCHES "VFPV3" )
set ( ENABLE_VFPV3 ON )
endif ( )
2018-02-15 20:49:31 +08:00
endif ( )
2012-02-17 04:29:35 +08:00
if ( WIN32 )
# Postfix of DLLs:
2019-07-18 18:22:02 +08:00
ocv_update ( OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}" )
ocv_update ( OPENCV_DEBUG_POSTFIX d )
2012-02-17 04:29:35 +08:00
else ( )
# Postfix of so's:
2019-07-18 18:22:02 +08:00
ocv_update ( OPENCV_DLLVERSION "" )
ocv_update ( OPENCV_DEBUG_POSTFIX "" )
2012-02-17 04:29:35 +08:00
endif ( )
2012-02-18 03:09:05 +08:00
if ( DEFINED CMAKE_DEBUG_POSTFIX )
2012-02-17 04:29:35 +08:00
set ( OPENCV_DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}" )
endif ( )
2015-12-16 22:28:03 +08:00
if ( ( INSTALL_CREATE_DISTRIB AND BUILD_SHARED_LIBS AND NOT DEFINED BUILD_opencv_world ) OR APPLE_FRAMEWORK )
2014-08-06 00:37:18 +08:00
set ( BUILD_opencv_world ON CACHE INTERNAL "" )
endif ( )
2012-02-03 19:26:49 +08:00
2019-08-29 21:57:42 +08:00
include ( cmake/OpenCVInstallLayout.cmake )
2012-02-03 19:26:49 +08:00
# ----------------------------------------------------------------------------
# Path for build/platform -specific headers
# ----------------------------------------------------------------------------
2016-01-11 22:54:14 +08:00
ocv_update ( OPENCV_CONFIG_FILE_INCLUDE_DIR "${CMAKE_BINARY_DIR}/" CACHE PATH "Where to create the platform-dependant cvconfig.h" )
2012-03-03 23:49:23 +08:00
ocv_include_directories ( ${ OPENCV_CONFIG_FILE_INCLUDE_DIR } )
2012-02-03 19:26:49 +08:00
2013-06-05 22:09:47 +08:00
# ----------------------------------------------------------------------------
# Path for additional modules
# ----------------------------------------------------------------------------
2018-02-01 22:08:01 +08:00
set ( OPENCV_EXTRA_MODULES_PATH "" CACHE PATH "Where to look for additional OpenCV modules (can be ;-separated list of paths)" )
2012-02-03 19:26:49 +08:00
2011-06-14 18:11:16 +08:00
# ----------------------------------------------------------------------------
2012-08-07 14:59:20 +08:00
# Autodetect if we are in a GIT repository
# ----------------------------------------------------------------------------
2013-09-11 21:54:34 +08:00
find_host_package ( Git QUIET )
2012-08-07 14:59:20 +08:00
2016-01-11 22:54:14 +08:00
if ( NOT DEFINED OPENCV_VCSVERSION AND GIT_FOUND )
2018-04-28 20:46:56 +08:00
ocv_git_describe ( OPENCV_VCSVERSION "${OpenCV_SOURCE_DIR}" )
2016-01-11 22:54:14 +08:00
elseif ( NOT DEFINED OPENCV_VCSVERSION )
2012-08-07 14:59:20 +08:00
# We don't have git:
2013-02-13 18:50:32 +08:00
set ( OPENCV_VCSVERSION "unknown" )
2011-06-14 18:11:16 +08:00
endif ( )
2012-02-03 19:26:49 +08:00
2012-02-25 05:54:29 +08:00
# ----------------------------------------------------------------------------
# OpenCV compiler and linker options
# ----------------------------------------------------------------------------
# In case of Makefiles if the user does not setup CMAKE_BUILD_TYPE, assume it's Release:
2012-04-30 22:33:52 +08:00
if ( CMAKE_GENERATOR MATCHES "Makefiles|Ninja" AND "${CMAKE_BUILD_TYPE}" STREQUAL "" )
2012-02-25 05:54:29 +08:00
set ( CMAKE_BUILD_TYPE Release )
endif ( )
2018-01-29 23:02:00 +08:00
ocv_cmake_hook ( POST_CMAKE_BUILD_OPTIONS )
2016-09-07 23:02:36 +08:00
# --- Python Support ---
2017-11-29 21:25:11 +08:00
if ( NOT IOS )
include ( cmake/OpenCVDetectPython.cmake )
endif ( )
2016-09-07 23:02:36 +08:00
2012-09-15 19:45:27 +08:00
include ( cmake/OpenCVCompilerOptions.cmake )
2012-06-12 23:14:28 +08:00
2018-01-29 23:02:00 +08:00
ocv_cmake_hook ( POST_COMPILER_OPTIONS )
2011-06-14 18:11:16 +08:00
# ----------------------------------------------------------------------------
# CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC..
# ----------------------------------------------------------------------------
2012-02-03 19:26:49 +08:00
if ( UNIX )
2018-01-31 21:56:24 +08:00
if ( NOT APPLE_FRAMEWORK OR OPENCV_ENABLE_PKG_CONFIG )
2019-04-26 20:13:16 +08:00
if ( CMAKE_CROSSCOMPILING AND NOT DEFINED ENV{PKG_CONFIG_LIBDIR} AND NOT DEFINED ENV{PKG_CONFIG_SYSROOT_DIR}
2018-01-31 21:56:24 +08:00
A N D N O T O P E N C V _ E N A B L E _ P K G _ C O N F I G
)
if ( NOT PkgConfig_FOUND )
message ( STATUS "OpenCV disables pkg-config to avoid using of host libraries. Consider using PKG_CONFIG_LIBDIR to specify target SYSROOT" )
elseif ( OPENCV_SKIP_PKG_CONFIG_WARNING )
message ( WARNING "pkg-config is enabled in cross-compilation mode without defining of PKG_CONFIG_LIBDIR environment variable. This may lead to misconfigured host-based dependencies." )
endif ( )
elseif ( OPENCV_DISABLE_PKG_CONFIG )
if ( PkgConfig_FOUND )
message ( WARNING "OPENCV_DISABLE_PKG_CONFIG flag has no effect" )
endif ( )
else ( )
find_package ( PkgConfig QUIET )
endif ( )
2017-02-22 00:23:37 +08:00
endif ( )
2012-02-03 19:26:49 +08:00
include ( CheckFunctionExists )
include ( CheckIncludeFile )
2017-07-27 23:01:34 +08:00
include ( CheckSymbolExists )
2012-05-25 04:10:13 +08:00
2012-05-21 02:49:57 +08:00
if ( NOT APPLE )
2017-08-14 15:59:38 +08:00
CHECK_INCLUDE_FILE ( pthread.h HAVE_PTHREAD )
2012-05-21 02:49:57 +08:00
if ( ANDROID )
set ( OPENCV_LINKER_LIBS ${ OPENCV_LINKER_LIBS } dl m log )
2019-03-16 22:54:06 +08:00
elseif ( CMAKE_SYSTEM_NAME MATCHES "FreeBSD|NetBSD|DragonFly|OpenBSD|Haiku" )
2012-05-21 02:49:57 +08:00
set ( OPENCV_LINKER_LIBS ${ OPENCV_LINKER_LIBS } m pthread )
2013-12-28 18:05:00 +08:00
elseif ( EMSCRIPTEN )
# no need to link to system libs with emscripten
2012-05-21 02:49:57 +08:00
else ( )
set ( OPENCV_LINKER_LIBS ${ OPENCV_LINKER_LIBS } dl m pthread rt )
endif ( )
else ( )
2017-08-14 15:59:38 +08:00
set ( HAVE_PTHREAD 1 )
2012-05-21 02:49:57 +08:00
endif ( )
2017-07-27 23:01:34 +08:00
2019-10-09 19:06:12 +08:00
if ( OPENCV_ENABLE_MEMALIGN )
CHECK_SYMBOL_EXISTS ( posix_memalign stdlib.h HAVE_POSIX_MEMALIGN )
CHECK_INCLUDE_FILE ( malloc.h HAVE_MALLOC_H )
if ( HAVE_MALLOC_H )
CHECK_SYMBOL_EXISTS ( memalign malloc.h HAVE_MEMALIGN )
endif ( )
# TODO:
# - _aligned_malloc() on Win32
# - std::aligned_alloc() C++17 / C11
2017-07-27 23:01:34 +08:00
endif ( )
2012-02-03 19:26:49 +08:00
endif ( )
2011-06-14 18:11:16 +08:00
2012-09-15 19:45:27 +08:00
include ( cmake/OpenCVPCHSupport.cmake )
include ( cmake/OpenCVModule.cmake )
2011-06-14 18:11:16 +08:00
2014-02-13 19:59:30 +08:00
# ----------------------------------------------------------------------------
# Detect endianness of build platform
# ----------------------------------------------------------------------------
2014-02-21 20:08:49 +08:00
2015-05-03 05:44:19 +08:00
if ( IOS )
2014-02-21 20:08:49 +08:00
# test_big_endian needs try_compile, which doesn't work for iOS
# http://public.kitware.com/Bug/view.php?id=12288
set ( WORDS_BIGENDIAN 0 )
else ( )
include ( TestBigEndian )
test_big_endian ( WORDS_BIGENDIAN )
endif ( )
2014-02-13 19:59:30 +08:00
2012-02-03 19:26:49 +08:00
# ----------------------------------------------------------------------------
2012-05-25 21:12:02 +08:00
# Detect 3rd-party libraries
2012-02-03 19:26:49 +08:00
# ----------------------------------------------------------------------------
2012-03-02 16:34:54 +08:00
2017-06-13 00:10:13 +08:00
if ( ANDROID AND WITH_CPUFEATURES )
add_subdirectory ( 3rdparty/cpufeatures )
set ( HAVE_CPUFEATURES 1 )
2017-05-19 21:14:01 +08:00
endif ( )
2018-11-01 04:28:18 +08:00
include ( cmake/OpenCVFindFrameworks.cmake )
2012-09-15 19:45:27 +08:00
include ( cmake/OpenCVFindLibsGrfmt.cmake )
include ( cmake/OpenCVFindLibsGUI.cmake )
include ( cmake/OpenCVFindLibsVideo.cmake )
include ( cmake/OpenCVFindLibsPerf.cmake )
2016-12-23 03:57:44 +08:00
include ( cmake/OpenCVFindLAPACK.cmake )
2018-02-01 21:30:23 +08:00
include ( cmake/OpenCVFindProtobuf.cmake )
2020-03-09 22:59:23 +08:00
if ( WITH_TENGINE )
include ( cmake/OpenCVFindTengine.cmake )
endif ( )
2011-06-30 15:24:35 +08:00
2012-05-21 02:49:57 +08:00
# ----------------------------------------------------------------------------
# Detect other 3rd-party libraries/tools
# ----------------------------------------------------------------------------
2011-06-16 17:51:34 +08:00
2012-05-21 02:49:57 +08:00
# --- Java Support ---
2017-11-29 21:49:24 +08:00
if ( BUILD_JAVA )
if ( ANDROID )
2018-01-06 13:05:40 +08:00
include ( cmake/android/OpenCVDetectAndroidSDK.cmake )
2017-11-29 21:49:24 +08:00
else ( )
2018-01-06 13:05:40 +08:00
include ( cmake/OpenCVDetectApacheAnt.cmake )
2017-11-29 21:49:24 +08:00
find_package ( JNI )
2012-02-03 19:26:49 +08:00
endif ( )
2012-09-15 19:46:34 +08:00
endif ( )
2011-11-21 19:58:52 +08:00
2018-05-11 18:52:15 +08:00
if ( ENABLE_PYLINT AND PYTHON_DEFAULT_AVAILABLE )
2017-08-24 00:48:41 +08:00
include ( cmake/OpenCVPylint.cmake )
endif ( )
2018-05-11 18:52:15 +08:00
if ( ENABLE_FLAKE8 AND PYTHON_DEFAULT_AVAILABLE )
find_package ( Flake8 QUIET )
if ( NOT FLAKE8_FOUND OR NOT FLAKE8_EXECUTABLE )
include ( "${CMAKE_CURRENT_LIST_DIR}/cmake/FindFlake8.cmake" )
endif ( )
if ( FLAKE8_FOUND )
add_custom_target ( check_flake8
C O M M A N D " $ { F L A K E 8 _ E X E C U T A B L E } " . - - c o u n t - - s e l e c t = E 9 , E 9 0 1 , E 9 9 9 , F 8 2 1 , F 8 2 2 , F 8 2 3 - - s h o w - s o u r c e - - s t a t i s t i c s - - e x c l u d e = ' . g i t , _ _ p y c a c h e _ _ , * . c o n f i g . p y , s v g f i g . p y '
W O R K I N G _ D I R E C T O R Y " $ { O p e n C V _ S O U R C E _ D I R } "
C O M M E N T " R u n n i n g f l a k e 8 "
)
endif ( )
endif ( )
2017-08-24 00:48:41 +08:00
2012-05-21 02:49:57 +08:00
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 )
else ( )
SET ( CAN_BUILD_ANDROID_PROJECTS FALSE )
2011-06-17 21:52:55 +08:00
endif ( )
2011-06-14 18:11:16 +08:00
2012-07-17 01:08:14 +08:00
# --- OpenCL ---
if ( WITH_OPENCL )
2012-09-15 19:45:27 +08:00
include ( cmake/OpenCVDetectOpenCL.cmake )
2012-07-17 01:08:14 +08:00
endif ( )
2011-06-14 18:11:16 +08:00
2017-06-21 19:33:47 +08:00
# --- Halide ---
if ( WITH_HALIDE )
include ( cmake/OpenCVDetectHalide.cmake )
endif ( )
2018-02-06 16:57:35 +08:00
# --- Inference Engine ---
if ( WITH_INF_ENGINE )
include ( cmake/OpenCVDetectInferenceEngine.cmake )
endif ( )
2013-11-28 21:42:40 +08:00
# --- DirectX ---
if ( WITH_DIRECTX )
include ( cmake/OpenCVDetectDirectX.cmake )
endif ( )
2017-11-29 21:52:42 +08:00
if ( WITH_VTK )
include ( cmake/OpenCVDetectVTK.cmake )
endif ( )
2013-11-25 03:26:03 +08:00
2016-08-25 21:08:35 +08:00
if ( WITH_OPENVX )
include ( cmake/FindOpenVX.cmake )
endif ( )
2016-06-15 20:51:19 +08:00
2018-08-18 00:01:02 +08:00
if ( WITH_QUIRC )
add_subdirectory ( 3rdparty/quirc )
set ( HAVE_QUIRC TRUE )
endif ( )
2016-06-15 20:51:19 +08:00
# ----------------------------------------------------------------------------
# OpenCV HAL
# ----------------------------------------------------------------------------
set ( _hal_includes "" )
macro ( ocv_hal_register HAL_LIBRARIES_VAR HAL_HEADERS_VAR HAL_INCLUDE_DIRS_VAR )
2016-03-24 22:05:54 +08:00
# 1. libraries
2016-06-15 20:51:19 +08:00
foreach ( l ${ ${HAL_LIBRARIES_VAR } } )
if ( NOT TARGET ${ l } )
get_filename_component ( l "${l}" ABSOLUTE )
endif ( )
list ( APPEND OPENCV_HAL_LINKER_LIBS ${ l } )
2015-12-15 20:55:43 +08:00
endforeach ( )
2016-03-24 22:05:54 +08:00
# 2. headers
2016-06-15 20:51:19 +08:00
foreach ( h ${ ${HAL_HEADERS_VAR } } )
set ( _hal_includes "${_hal_includes}\n#include \" ${ h } \"")
2016-03-24 22:05:54 +08:00
endforeach ( )
# 3. include paths
2016-06-15 20:51:19 +08:00
ocv_include_directories ( ${ ${HAL_INCLUDE_DIRS_VAR } } )
endmacro ( )
if ( NOT DEFINED OpenCV_HAL )
set ( OpenCV_HAL "OpenCV_HAL" )
endif ( )
2016-07-05 14:45:07 +08:00
2016-08-25 21:08:35 +08:00
if ( HAVE_OPENVX )
if ( NOT ";${OpenCV_HAL};" MATCHES ";openvx;" )
set ( OpenCV_HAL "openvx;${OpenCV_HAL}" )
endif ( )
endif ( )
2016-07-05 14:45:07 +08:00
if ( WITH_CAROTENE )
ocv_debug_message ( STATUS "Enable carotene acceleration" )
if ( NOT ";${OpenCV_HAL};" MATCHES ";carotene;" )
set ( OpenCV_HAL "carotene;${OpenCV_HAL}" )
endif ( )
endif ( )
2016-06-15 20:51:19 +08:00
foreach ( hal ${ OpenCV_HAL } )
2016-07-05 14:45:07 +08:00
if ( hal STREQUAL "carotene" )
2020-01-24 20:23:50 +08:00
if ( ";${CPU_BASELINE_FINAL};" MATCHES ";NEON;" )
add_subdirectory ( 3rdparty/carotene/hal )
ocv_hal_register ( CAROTENE_HAL_LIBRARIES CAROTENE_HAL_HEADERS CAROTENE_HAL_INCLUDE_DIRS )
list ( APPEND OpenCV_USED_HAL "carotene (ver ${CAROTENE_HAL_VERSION})" )
else ( )
message ( STATUS "Carotene: NEON is not available, disabling carotene..." )
endif ( )
2016-08-25 21:08:35 +08:00
elseif ( hal STREQUAL "openvx" )
add_subdirectory ( 3rdparty/openvx )
ocv_hal_register ( OPENVX_HAL_LIBRARIES OPENVX_HAL_HEADERS OPENVX_HAL_INCLUDE_DIRS )
list ( APPEND OpenCV_USED_HAL "openvx (ver ${OPENVX_HAL_VERSION})" )
2016-07-05 14:45:07 +08:00
else ( )
2016-06-15 20:51:19 +08:00
ocv_debug_message ( STATUS "OpenCV HAL: ${hal} ..." )
ocv_clear_vars ( OpenCV_HAL_LIBRARIES OpenCV_HAL_HEADERS OpenCV_HAL_INCLUDE_DIRS )
find_package ( ${ hal } NO_MODULE QUIET )
if ( ${ hal } _FOUND )
ocv_hal_register ( OpenCV_HAL_LIBRARIES OpenCV_HAL_HEADERS OpenCV_HAL_INCLUDE_DIRS )
list ( APPEND OpenCV_USED_HAL "${hal} (ver ${${hal}_VERSION})" )
endif ( )
2016-07-05 14:45:07 +08:00
endif ( )
2016-06-15 20:51:19 +08:00
endforeach ( )
2016-03-24 22:39:16 +08:00
configure_file ( "${OpenCV_SOURCE_DIR}/cmake/templates/custom_hal.hpp.in" "${CMAKE_BINARY_DIR}/custom_hal.hpp" @ONLY )
2016-06-15 20:51:19 +08:00
unset ( _hal_includes )
2015-12-03 19:43:37 +08:00
2013-10-16 19:47:51 +08:00
# ----------------------------------------------------------------------------
# Add CUDA libraries (needed for apps/tools, samples)
# ----------------------------------------------------------------------------
if ( HAVE_CUDA )
set ( OPENCV_LINKER_LIBS ${ OPENCV_LINKER_LIBS } ${ CUDA_LIBRARIES } ${ CUDA_npp_LIBRARY } )
if ( HAVE_CUBLAS )
set ( OPENCV_LINKER_LIBS ${ OPENCV_LINKER_LIBS } ${ CUDA_cublas_LIBRARY } )
endif ( )
if ( HAVE_CUFFT )
set ( OPENCV_LINKER_LIBS ${ OPENCV_LINKER_LIBS } ${ CUDA_cufft_LIBRARY } )
endif ( )
2015-12-08 15:24:54 +08:00
foreach ( p ${ CUDA_LIBS_PATH } )
2017-05-29 20:45:10 +08:00
if ( MSVC AND CMAKE_GENERATOR MATCHES "Ninja|JOM" )
set ( OPENCV_LINKER_LIBS ${ OPENCV_LINKER_LIBS } ${ CMAKE_LIBRARY_PATH_FLAG } "${p}" )
else ( )
set ( OPENCV_LINKER_LIBS ${ OPENCV_LINKER_LIBS } ${ CMAKE_LIBRARY_PATH_FLAG } ${ p } )
endif ( )
2015-12-08 15:24:54 +08:00
endforeach ( )
2013-10-16 19:47:51 +08:00
endif ( )
2017-05-25 23:59:01 +08:00
# ----------------------------------------------------------------------------
# Code trace support
# ----------------------------------------------------------------------------
if ( CV_TRACE )
include ( cmake/OpenCVDetectTrace.cmake )
endif ( )
2019-06-15 00:07:54 +08:00
ocv_cmake_hook ( POST_DETECT_DEPENDECIES ) # typo, deprecated (2019-06)
ocv_cmake_hook ( POST_DETECT_DEPENDENCIES )
2017-05-25 23:59:01 +08:00
2012-02-03 19:26:49 +08:00
# ----------------------------------------------------------------------------
# Solution folders:
# ----------------------------------------------------------------------------
if ( ENABLE_SOLUTION_FOLDERS )
set_property ( GLOBAL PROPERTY USE_FOLDERS ON )
set_property ( GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMakeTargets" )
2011-06-28 13:18:53 +08:00
endif ( )
2012-02-03 19:26:49 +08:00
# Extra OpenCV targets: uninstall, package_source, perf, etc.
2012-09-15 19:45:27 +08:00
include ( cmake/OpenCVExtraTargets.cmake )
2011-06-14 18:11:16 +08:00
2012-02-03 19:26:49 +08:00
# ----------------------------------------------------------------------------
# Process subdirectories
# ----------------------------------------------------------------------------
2011-06-14 18:11:16 +08:00
2012-02-03 19:26:49 +08:00
# opencv.hpp and legacy headers
add_subdirectory ( include )
2011-06-27 21:59:03 +08:00
2018-02-08 00:15:47 +08:00
# Enable compiler options for OpenCV modules/apps/samples only (ignore 3rdparty)
ocv_add_modules_compiler_options ( )
2012-02-03 19:26:49 +08:00
# OpenCV modules
add_subdirectory ( modules )
2011-06-14 18:11:16 +08:00
2012-02-03 19:26:49 +08:00
# Generate targets for documentation
add_subdirectory ( doc )
2011-06-28 13:18:53 +08:00
2012-02-03 19:26:49 +08:00
# various data that is used by cv libraries and/or demo applications.
add_subdirectory ( data )
2011-06-28 16:48:23 +08:00
2012-02-03 19:26:49 +08:00
# extra applications
2013-01-29 20:38:59 +08:00
if ( BUILD_opencv_apps )
add_subdirectory ( apps )
endif ( )
2011-06-29 03:24:31 +08:00
2012-02-03 19:26:49 +08:00
# examples
2018-02-09 18:30:04 +08:00
if ( BUILD_EXAMPLES OR BUILD_ANDROID_EXAMPLES OR INSTALL_PYTHON_EXAMPLES OR INSTALL_C_EXAMPLES )
2012-02-03 19:26:49 +08:00
add_subdirectory ( samples )
2011-06-14 18:11:16 +08:00
endif ( )
2012-12-19 19:34:12 +08:00
if ( ANDROID )
2013-05-17 21:15:20 +08:00
add_subdirectory ( platforms/android/service )
2012-06-21 22:50:05 +08:00
endif ( )
2011-06-14 18:11:16 +08:00
# ----------------------------------------------------------------------------
2012-02-03 19:26:49 +08:00
# Finalization: generate configuration-based files
2011-06-14 18:11:16 +08:00
# ----------------------------------------------------------------------------
2018-01-29 23:02:00 +08:00
ocv_cmake_hook ( PRE_FINALIZE )
2012-02-03 19:26:49 +08:00
# Generate platform-dependent and configuration-dependent headers
2012-09-15 19:45:27 +08:00
include ( cmake/OpenCVGenHeaders.cmake )
2011-07-08 15:08:59 +08:00
2012-02-03 19:26:49 +08:00
# Generate opencv.pc for pkg-config command
2017-10-23 17:31:20 +08:00
if ( NOT OPENCV_SKIP_PKGCONFIG_GENERATION
2018-10-22 22:46:54 +08:00
A N D O P E N C V _ G E N E R A T E _ P K G C O N F I G
2017-10-23 17:31:20 +08:00
A N D N O T C M A K E _ G E N E R A T O R M A T C H E S " X c o d e " )
2017-06-21 19:33:47 +08:00
include ( cmake/OpenCVGenPkgconfig.cmake )
endif ( )
2011-06-14 18:11:16 +08:00
2012-02-03 19:26:49 +08:00
# Generate OpenCV.mk for ndk-build (Android build tool)
2012-09-15 19:45:27 +08:00
include ( cmake/OpenCVGenAndroidMK.cmake )
2011-09-06 23:30:28 +08:00
2016-02-09 19:44:05 +08:00
# Generate OpenCVConfig.cmake and OpenCVConfig-version.cmake for cmake projects
2012-09-15 19:45:27 +08:00
include ( cmake/OpenCVGenConfig.cmake )
2011-06-14 18:11:16 +08:00
2013-08-06 22:56:36 +08:00
# Generate Info.plist for the IOS framework
2015-12-16 22:28:03 +08:00
if ( APPLE_FRAMEWORK )
include ( cmake/OpenCVGenInfoPlist.cmake )
endif ( )
2012-02-25 05:54:29 +08:00
2015-03-16 17:45:21 +08:00
# Generate ABI descriptor
include ( cmake/OpenCVGenABI.cmake )
2014-01-28 18:05:26 +08:00
# Generate environment setup file
2015-02-20 17:38:25 +08:00
if ( INSTALL_TESTS AND OPENCV_TEST_DATA_PATH )
2014-02-12 14:56:57 +08:00
if ( ANDROID )
get_filename_component ( TEST_PATH ${ OPENCV_TEST_INSTALL_PATH } DIRECTORY )
configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/opencv_run_all_tests_android.sh.in"
" $ { C M A K E _ B I N A R Y _ D I R } / u n i x - i n s t a l l / o p e n c v _ r u n _ a l l _ t e s t s . s h " @ O N L Y )
install ( PROGRAMS "${CMAKE_BINARY_DIR}/unix-install/opencv_run_all_tests.sh"
2016-03-13 17:08:25 +08:00
D E S T I N A T I O N . / C O M P O N E N T t e s t s )
2015-02-20 17:38:25 +08:00
elseif ( WIN32 )
configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/opencv_run_all_tests_windows.cmd.in"
" $ { C M A K E _ B I N A R Y _ D I R } / w i n - i n s t a l l / o p e n c v _ r u n _ a l l _ t e s t s . c m d " @ O N L Y )
install ( PROGRAMS "${CMAKE_BINARY_DIR}/win-install/opencv_run_all_tests.cmd"
D E S T I N A T I O N $ { O P E N C V _ T E S T _ I N S T A L L _ P A T H } C O M P O N E N T t e s t s )
elseif ( UNIX )
2014-02-12 14:56:57 +08:00
configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/opencv_run_all_tests_unix.sh.in"
" $ { C M A K E _ B I N A R Y _ D I R } / u n i x - i n s t a l l / o p e n c v _ r u n _ a l l _ t e s t s . s h " @ O N L Y )
install ( PROGRAMS "${CMAKE_BINARY_DIR}/unix-install/opencv_run_all_tests.sh"
D E S T I N A T I O N $ { O P E N C V _ T E S T _ I N S T A L L _ P A T H } C O M P O N E N T t e s t s )
endif ( )
2014-01-28 18:05:26 +08:00
endif ( )
2014-02-12 14:29:53 +08:00
if ( NOT OPENCV_README_FILE )
if ( ANDROID )
set ( OPENCV_README_FILE ${ CMAKE_CURRENT_SOURCE_DIR } /platforms/android/README.android )
endif ( )
endif ( )
if ( NOT OPENCV_LICENSE_FILE )
set ( OPENCV_LICENSE_FILE ${ CMAKE_CURRENT_SOURCE_DIR } /LICENSE )
endif ( )
# for UNIX it does not make sense as LICENSE and readme will be part of the package automatically
if ( ANDROID OR NOT UNIX )
install ( FILES ${ OPENCV_LICENSE_FILE }
2020-03-31 20:19:34 +08:00
P E R M I S S I O N S O W N E R _ R E A D O W N E R _ W R I T E G R O U P _ R E A D W O R L D _ R E A D
2016-03-13 17:08:25 +08:00
D E S T I N A T I O N . / C O M P O N E N T l i b s )
2014-02-12 14:29:53 +08:00
if ( OPENCV_README_FILE )
install ( FILES ${ OPENCV_README_FILE }
2020-03-31 20:19:34 +08:00
P E R M I S S I O N S O W N E R _ R E A D O W N E R _ W R I T E G R O U P _ R E A D W O R L D _ R E A D
2016-03-13 17:08:25 +08:00
D E S T I N A T I O N . / C O M P O N E N T l i b s )
2014-02-12 14:29:53 +08:00
endif ( )
2014-01-28 18:05:26 +08:00
endif ( )
2017-08-24 00:48:41 +08:00
if ( COMMAND ocv_pylint_finalize )
2017-09-03 19:17:15 +08:00
ocv_pylint_add_directory ( ${ CMAKE_CURRENT_LIST_DIR } /modules/python/test )
2017-08-24 00:48:41 +08:00
ocv_pylint_add_directory ( ${ CMAKE_CURRENT_LIST_DIR } /samples/python )
ocv_pylint_add_directory ( ${ CMAKE_CURRENT_LIST_DIR } /samples/dnn )
ocv_pylint_add_directory_recurse ( ${ CMAKE_CURRENT_LIST_DIR } /samples/python/tutorial_code )
ocv_pylint_finalize ( )
endif ( )
2018-11-01 09:37:40 +08:00
if ( OPENCV_GENERATE_SETUPVARS )
include ( cmake/OpenCVGenSetupVars.cmake )
endif ( )
2011-06-14 18:11:16 +08:00
# ----------------------------------------------------------------------------
2012-02-03 19:26:49 +08:00
# Summary:
2011-06-14 18:11:16 +08:00
# ----------------------------------------------------------------------------
2011-07-01 20:23:03 +08:00
status ( "" )
2012-02-21 20:42:51 +08:00
status ( "General configuration for OpenCV ${OPENCV_VERSION} =====================================" )
2012-08-07 14:59:20 +08:00
if ( OPENCV_VCSVERSION )
status ( " Version control:" ${ OPENCV_VCSVERSION } )
2012-04-14 05:50:59 +08:00
endif ( )
2016-02-09 19:36:42 +08:00
if ( OPENCV_EXTRA_MODULES_PATH AND NOT BUILD_INFO_SKIP_EXTRA_MODULES )
set ( __dump_extra_header OFF )
foreach ( p ${ OPENCV_EXTRA_MODULES_PATH } )
if ( EXISTS ${ p } )
if ( NOT __dump_extra_header )
set ( __dump_extra_header ON )
status ( "" )
status ( " Extra modules:" )
else ( )
status ( "" )
endif ( )
2018-04-28 20:46:56 +08:00
ocv_git_describe ( EXTRA_MODULES_VCSVERSION "${p}" )
2016-02-09 19:36:42 +08:00
status ( " Location (extra):" ${ p } )
status ( " Version control (extra):" ${ EXTRA_MODULES_VCSVERSION } )
endif ( )
endforeach ( )
unset ( __dump_extra_header )
endif ( )
2012-02-21 20:42:51 +08:00
2012-05-19 21:48:36 +08:00
# ========================== build platform ==========================
2011-07-01 20:23:03 +08:00
status ( "" )
2012-02-21 20:42:51 +08:00
status ( " Platform:" )
2017-12-13 20:16:03 +08:00
if ( NOT DEFINED OPENCV_TIMESTAMP
A N D N O T C M A K E _ V E R S I O N V E R S I O N _ L E S S 2 . 8 . 1 1
A N D N O T B U I L D _ I N F O _ S K I P _ T I M E S T A M P
)
string ( TIMESTAMP OPENCV_TIMESTAMP "" UTC )
set ( OPENCV_TIMESTAMP "${OPENCV_TIMESTAMP}" CACHE STRING "Timestamp of OpenCV build configuration" FORCE )
endif ( )
if ( OPENCV_TIMESTAMP )
status ( " Timestamp:" ${ OPENCV_TIMESTAMP } )
2016-02-09 19:24:56 +08:00
endif ( )
2012-02-21 20:42:51 +08:00
status ( " Host:" ${ CMAKE_HOST_SYSTEM_NAME } ${ CMAKE_HOST_SYSTEM_VERSION } ${ CMAKE_HOST_SYSTEM_PROCESSOR } )
2012-04-14 05:50:59 +08:00
if ( CMAKE_CROSSCOMPILING )
2012-05-19 21:48:36 +08:00
status ( " Target:" ${ CMAKE_SYSTEM_NAME } ${ CMAKE_SYSTEM_VERSION } ${ CMAKE_SYSTEM_PROCESSOR } )
2012-04-14 05:50:59 +08:00
endif ( )
2012-02-21 20:42:51 +08:00
status ( " CMake:" ${ CMAKE_VERSION } )
status ( " CMake generator:" ${ CMAKE_GENERATOR } )
status ( " CMake build tool:" ${ CMAKE_BUILD_TOOL } )
if ( MSVC )
status ( " MSVC:" ${ MSVC_VERSION } )
endif ( )
if ( CMAKE_GENERATOR MATCHES Xcode )
status ( " Xcode:" ${ XCODE_VERSION } )
endif ( )
2012-04-30 22:33:52 +08:00
if ( NOT CMAKE_GENERATOR MATCHES "Xcode|Visual Studio" )
status ( " Configuration:" ${ CMAKE_BUILD_TYPE } )
endif ( )
2012-02-21 20:42:51 +08:00
2016-09-07 23:02:36 +08:00
# ========================= CPU code generation mode =========================
status ( "" )
status ( " CPU/HW features:" )
status ( " Baseline:" "${CPU_BASELINE_FINAL}" )
if ( NOT CPU_BASELINE STREQUAL CPU_BASELINE_FINAL )
status ( " requested:" "${CPU_BASELINE}" )
endif ( )
if ( CPU_BASELINE_REQUIRE )
status ( " required:" "${CPU_BASELINE_REQUIRE}" )
endif ( )
if ( CPU_BASELINE_DISABLE )
status ( " disabled:" "${CPU_BASELINE_DISABLE}" )
endif ( )
if ( CPU_DISPATCH_FINAL OR CPU_DISPATCH )
status ( " Dispatched code generation:" "${CPU_DISPATCH_FINAL}" )
if ( NOT CPU_DISPATCH STREQUAL CPU_DISPATCH_FINAL )
status ( " requested:" "${CPU_DISPATCH}" )
endif ( )
if ( CPU_DISPATCH_REQUIRE )
status ( " required:" "${CPU_DISPATCH_REQUIRE}" )
endif ( )
foreach ( OPT ${ CPU_DISPATCH_FINAL } )
status ( " ${OPT} (${CPU_${OPT}_USAGE_COUNT} files):" "+ ${CPU_DISPATCH_${OPT}_INCLUDED}" )
endforeach ( )
endif ( )
2012-05-19 21:48:36 +08:00
# ========================== C/C++ options ==========================
2013-02-13 18:11:56 +08:00
if ( CMAKE_CXX_COMPILER_VERSION )
set ( OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} (ver ${CMAKE_CXX_COMPILER_VERSION})" )
else ( )
set ( OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1}" )
endif ( )
string ( STRIP "${OPENCV_COMPILER_STR}" OPENCV_COMPILER_STR )
2012-02-21 20:42:51 +08:00
status ( "" )
2012-04-14 05:50:59 +08:00
status ( " C/C++:" )
2011-07-01 20:23:03 +08:00
status ( " Built as dynamic libs?:" BUILD_SHARED_LIBS THEN YES ELSE NO )
2017-07-03 19:39:25 +08:00
if ( ENABLE_CXX11 OR HAVE_CXX11 )
status ( " C++11:" HAVE_CXX11 THEN YES ELSE NO )
2017-06-21 19:33:47 +08:00
endif ( )
2013-02-13 18:11:56 +08:00
status ( " C++ Compiler:" ${ OPENCV_COMPILER_STR } )
2011-07-01 20:23:03 +08:00
status ( " C++ flags (Release):" ${ CMAKE_CXX_FLAGS } ${ CMAKE_CXX_FLAGS_RELEASE } )
status ( " C++ flags (Debug):" ${ CMAKE_CXX_FLAGS } ${ CMAKE_CXX_FLAGS_DEBUG } )
2012-08-27 22:22:00 +08:00
status ( " C Compiler:" ${ CMAKE_C_COMPILER } ${ CMAKE_C_COMPILER_ARG1 } )
2012-04-14 05:50:59 +08:00
status ( " C flags (Release):" ${ CMAKE_C_FLAGS } ${ CMAKE_C_FLAGS_RELEASE } )
status ( " C flags (Debug):" ${ CMAKE_C_FLAGS } ${ CMAKE_C_FLAGS_DEBUG } )
2011-06-14 18:11:16 +08:00
if ( WIN32 )
2012-02-21 20:42:51 +08:00
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 } )
2011-06-14 18:11:16 +08:00
else ( )
2012-02-21 20:42:51 +08:00
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 } )
2011-06-14 18:11:16 +08:00
endif ( )
2018-03-26 19:30:49 +08:00
status ( " ccache:" OPENCV_COMPILER_IS_CCACHE THEN YES ELSE NO )
2012-06-08 14:19:17 +08:00
status ( " Precompiled headers:" PCHSupport_FOUND AND ENABLE_PRECOMPILED_HEADERS THEN YES ELSE NO )
2011-06-14 18:11:16 +08:00
2015-05-19 21:15:54 +08:00
# ========================== Dependencies ============================
ocv_get_all_libs ( deps_modules deps_extra deps_3rdparty )
status ( " Extra dependencies:" ${ deps_extra } )
status ( " 3rdparty dependencies:" ${ deps_3rdparty } )
2012-05-19 21:48:36 +08:00
# ========================== OpenCV modules ==========================
2012-02-03 19:26:49 +08:00
status ( "" )
status ( " OpenCV modules:" )
2019-03-28 05:42:24 +08:00
set ( OPENCV_MODULES_BUILD_ST "" )
foreach ( the_module ${ OPENCV_MODULES_BUILD } )
if ( NOT OPENCV_MODULE_ ${ the_module } _CLASS STREQUAL "INTERNAL" OR the_module STREQUAL "opencv_ts" )
list ( APPEND OPENCV_MODULES_BUILD_ST "${the_module}" )
endif ( )
endforeach ( )
string ( REPLACE "opencv_" "" OPENCV_MODULES_BUILD_ST "${OPENCV_MODULES_BUILD_ST}" )
2012-02-03 19:26:49 +08:00
string ( REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_USER_ST "${OPENCV_MODULES_DISABLED_USER}" )
2017-11-14 22:07:04 +08:00
string ( REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_AUTO_ST "${OPENCV_MODULES_DISABLED_AUTO}" )
2012-02-03 19:26:49 +08:00
string ( REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_FORCE_ST "${OPENCV_MODULES_DISABLED_FORCE}" )
2017-11-14 22:07:04 +08:00
list ( SORT OPENCV_MODULES_BUILD_ST )
list ( SORT OPENCV_MODULES_DISABLED_USER_ST )
list ( SORT OPENCV_MODULES_DISABLED_AUTO_ST )
list ( SORT OPENCV_MODULES_DISABLED_FORCE_ST )
2012-05-21 02:49:57 +08:00
status ( " To be built:" OPENCV_MODULES_BUILD THEN ${ OPENCV_MODULES_BUILD_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 "-" )
2012-02-03 19:26:49 +08:00
2017-11-14 22:07:04 +08:00
ocv_build_features_string ( apps_status
I F B U I L D _ T E S T S A N D H A V E _ o p e n c v _ t s T H E N " t e s t s "
I F B U I L D _ P E R F _ T E S T S A N D H A V E _ o p e n c v _ t s T H E N " p e r f _ t e s t s "
I F B U I L D _ E X A M P L E S T H E N " e x a m p l e s "
I F B U I L D _ o p e n c v _ a p p s T H E N " a p p s "
I F B U I L D _ A N D R O I D _ S E R V I C E T H E N " a n d r o i d _ s e r v i c e "
I F B U I L D _ A N D R O I D _ E X A M P L E S A N D C A N _ B U I L D _ A N D R O I D _ P R O J E C T S T H E N " a n d r o i d _ e x a m p l e s "
E L S E " - " )
status ( " Applications:" "${apps_status}" )
2018-01-18 21:37:19 +08:00
ocv_build_features_string ( docs_status
I F T A R G E T d o x y g e n _ c p p T H E N " d o x y g e n "
I F T A R G E T d o x y g e n _ p y t h o n T H E N " p y t h o n "
I F T A R G E T d o x y g e n _ j a v a d o c T H E N " j a v a d o c "
I F B U I L D _ o p e n c v _ j s O R D E F I N E D O P E N C V _ J S _ L O C A T I O N T H E N " j s "
E L S E " N O "
)
status ( " Documentation:" "${docs_status}" )
2017-11-14 22:07:04 +08:00
status ( " Non-free algorithms:" OPENCV_ENABLE_NONFREE THEN "YES" ELSE "NO" )
2016-08-05 00:23:49 +08:00
2012-05-19 21:48:36 +08:00
# ========================== Android details ==========================
2011-07-04 16:18:02 +08:00
if ( ANDROID )
2012-02-21 20:42:51 +08:00
status ( "" )
2018-01-06 13:05:40 +08:00
if ( DEFINED ANDROID_NDK_REVISION )
set ( __msg "${ANDROID_NDK} (ver ${ANDROID_NDK_REVISION})" )
else ( )
set ( __msg "location: ${ANDROID_NDK}" )
endif ( )
status ( " Android NDK: " ${ __msg } )
2012-02-21 20:42:51 +08:00
status ( " Android ABI:" ${ ANDROID_ABI } )
2018-01-06 13:05:40 +08:00
if ( BUILD_WITH_STANDALONE_TOOLCHAIN )
status ( " NDK toolchain:" "standalone: ${ANDROID_STANDALONE_TOOLCHAIN}" )
elseif ( BUILD_WITH_ANDROID_NDK OR DEFINED ANDROID_TOOLCHAIN_NAME )
status ( " NDK toolchain:" "${ANDROID_TOOLCHAIN_NAME}" )
endif ( )
2012-12-23 02:52:27 +08:00
status ( " STL type:" ${ ANDROID_STL } )
2018-01-06 13:05:40 +08:00
status ( " Native API level:" ${ ANDROID_NATIVE_API_LEVEL } )
if ( BUILD_ANDROID_PROJECTS )
status ( " Android SDK: " "${ANDROID_SDK} (tools: ${ANDROID_SDK_TOOLS_VERSION} build tools: ${ANDROID_SDK_BUILD_TOOLS_VERSION})" )
if ( ANDROID_EXECUTABLE )
status ( " android tool:" "${ANDROID_EXECUTABLE}" )
endif ( )
else ( )
status ( " Android SDK: " "not used, projects are not built" )
endif ( )
if ( DEFINED ANDROID_SDK_COMPATIBLE_TARGET )
status ( " SDK target:" "${ANDROID_SDK_COMPATIBLE_TARGET}" )
endif ( )
if ( DEFINED ANDROID_PROJECTS_BUILD_TYPE )
if ( ANDROID_PROJECTS_BUILD_TYPE STREQUAL "ANT" )
status ( " Projects build scripts:" "Ant/Eclipse compatible" )
elseif ( ANDROID_PROJECTS_BUILD_TYPE STREQUAL "ANT" )
status ( " Projects build scripts:" "Gradle" )
endif ( )
2012-02-21 20:42:51 +08:00
endif ( )
2011-07-04 16:18:02 +08:00
endif ( )
2013-07-29 19:38:18 +08:00
# ================== Windows RT features ==================
if ( WIN32 )
status ( "" )
2015-02-21 00:47:45 +08:00
status ( " Windows RT support:" WINRT THEN YES ELSE NO )
if ( WINRT )
status ( " Building for Microsoft platform: " ${ CMAKE_SYSTEM_NAME } )
status ( " Building for architectures: " ${ CMAKE_VS_EFFECTIVE_PLATFORMS } )
status ( " Building for version: " ${ CMAKE_SYSTEM_VERSION } )
2015-12-18 04:15:59 +08:00
if ( DEFINED ENABLE_WINRT_MODE_NATIVE )
status ( " Building for C++ without CX extensions" )
endif ( )
2015-02-21 00:47:45 +08:00
endif ( )
2013-07-29 19:38:18 +08:00
endif ( WIN32 )
2012-05-19 21:48:36 +08:00
# ========================== GUI ==========================
2011-07-01 20:23:03 +08:00
status ( "" )
status ( " GUI: " )
2011-06-14 18:11:16 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_QT OR HAVE_QT )
if ( HAVE_QT5 )
status ( " QT:" "YES (ver ${Qt5Core_VERSION_STRING})" )
status ( " QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${Qt5OpenGL_LIBRARIES} ${Qt5OpenGL_VERSION_STRING})" ELSE NO )
elseif ( HAVE_QT )
status ( " QT:" "YES (ver ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH} ${QT_EDITION})" )
status ( " QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${QT_QTOPENGL_LIBRARY})" ELSE NO )
else ( )
status ( " QT:" "NO" )
2012-05-19 21:48:36 +08:00
endif ( )
2017-11-14 22:07:04 +08:00
endif ( )
if ( WITH_WIN32UI )
status ( " Win32 UI:" HAVE_WIN32UI THEN YES ELSE NO )
endif ( )
if ( APPLE )
if ( WITH_CARBON )
status ( " Carbon:" YES )
2012-02-21 20:42:51 +08:00
else ( )
2017-11-14 22:07:04 +08:00
status ( " Cocoa:" YES )
endif ( )
endif ( )
if ( WITH_GTK OR HAVE_GTK )
if ( HAVE_GTK3 )
2019-04-16 05:29:17 +08:00
status ( " GTK+:" "YES (ver ${GTK3_VERSION})" )
2017-11-14 22:07:04 +08:00
elseif ( HAVE_GTK )
2019-04-16 05:29:17 +08:00
status ( " GTK+:" "YES (ver ${GTK2_VERSION})" )
2017-11-14 22:07:04 +08:00
else ( )
status ( " GTK+:" "NO" )
endif ( )
if ( HAVE_GTK )
2019-04-16 05:29:17 +08:00
status ( " GThread :" HAVE_GTHREAD THEN "YES (ver ${GTHREAD_VERSION})" ELSE NO )
status ( " GtkGlExt:" HAVE_GTKGLEXT THEN "YES (ver ${GTKGLEXT_VERSION})" ELSE NO )
2012-02-21 20:42:51 +08:00
endif ( )
2011-06-14 18:11:16 +08:00
endif ( )
2017-11-14 22:07:04 +08:00
if ( WITH_OPENGL OR HAVE_OPENGL )
status ( " OpenGL support:" HAVE_OPENGL THEN "YES (${OPENGL_LIBRARIES})" ELSE NO )
endif ( )
if ( WITH_VTK OR HAVE_VTK )
status ( " VTK support:" HAVE_VTK THEN "YES (ver ${VTK_VERSION})" ELSE NO )
endif ( )
2011-11-21 19:58:52 +08:00
2012-05-19 21:48:36 +08:00
# ========================== MEDIA IO ==========================
2011-07-01 20:23:03 +08:00
status ( "" )
status ( " Media I/O: " )
2017-11-14 22:07:04 +08:00
status ( " ZLib:" ZLIB_FOUND THEN "${ZLIB_LIBRARIES} (ver ${ZLIB_VERSION_STRING})" ELSE "build (ver ${ZLIB_VERSION_STRING})" )
2011-06-14 18:11:16 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_JPEG OR HAVE_JPEG )
2018-05-10 22:02:24 +08:00
if ( NOT HAVE_JPEG )
status ( " JPEG:" NO )
elseif ( BUILD_JPEG )
status ( " JPEG:" "build-${JPEG_LIBRARY} (ver ${JPEG_LIB_VERSION})" )
else ( )
status ( " JPEG:" "${JPEG_LIBRARY} (ver ${JPEG_LIB_VERSION})" )
endif ( )
2012-02-24 21:53:22 +08:00
endif ( )
2013-03-07 23:29:19 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_WEBP OR HAVE_WEBP )
status ( " WEBP:" WEBP_FOUND THEN "${WEBP_LIBRARY} (ver ${WEBP_VERSION})" ELSE "build (ver ${WEBP_VERSION})" )
2013-03-07 23:29:19 +08:00
endif ( )
2017-11-14 22:07:04 +08:00
if ( WITH_PNG OR HAVE_PNG )
status ( " PNG:" PNG_FOUND THEN "${PNG_LIBRARY} (ver ${PNG_VERSION})" ELSE "build (ver ${PNG_VERSION})" )
2012-02-24 21:53:22 +08:00
endif ( )
2015-04-20 20:27:57 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_TIFF OR HAVE_TIFF )
status ( " TIFF:" TIFF_FOUND THEN "${TIFF_LIBRARY} (ver ${TIFF_VERSION} / ${TIFF_VERSION_STRING})" ELSE "build (ver ${TIFF_VERSION} - ${TIFF_VERSION_STRING})" )
2012-02-24 21:53:22 +08:00
endif ( )
2017-11-14 22:07:04 +08:00
if ( WITH_JASPER OR HAVE_JASPER )
status ( " JPEG 2000:" JASPER_FOUND THEN "${JASPER_LIBRARY} (ver ${JASPER_VERSION_STRING})" ELSE "build (ver ${JASPER_VERSION_STRING})" )
2012-02-24 21:53:22 +08:00
endif ( )
2017-11-14 22:07:04 +08:00
if ( WITH_OPENEXR OR HAVE_OPENEXR )
2019-06-11 01:04:23 +08:00
if ( HAVE_OPENEXR )
status ( " OpenEXR:" OPENEXR_FOUND THEN "${OPENEXR_LIBRARIES} (ver ${OPENEXR_VERSION})" ELSE "build (ver ${OPENEXR_VERSION})" )
else ( )
status ( " OpenEXR:" "NO" )
endif ( )
2012-08-25 04:31:49 +08:00
endif ( )
2011-06-14 18:11:16 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_GDAL OR HAVE_GDAL )
status ( " GDAL:" HAVE_GDAL THEN "YES (${GDAL_LIBRARY})" ELSE "NO" )
2014-07-02 07:29:11 +08:00
endif ( )
2017-11-14 22:07:04 +08:00
if ( WITH_GDCM OR HAVE_GDCM )
status ( " GDCM:" HAVE_GDCM THEN "YES (ver ${GDCM_VERSION})" ELSE "NO" )
2015-04-20 20:27:57 +08:00
endif ( )
2018-05-22 23:10:15 +08:00
if ( WITH_IMGCODEC_HDR OR DEFINED HAVE_IMGCODEC_HDR )
status ( " HDR:" HAVE_IMGCODEC_HDR THEN "YES" ELSE "NO" )
endif ( )
if ( WITH_IMGCODEC_SUNRASTER OR DEFINED HAVE_IMGCODEC_SUNRASTER )
status ( " SUNRASTER:" HAVE_IMGCODEC_SUNRASTER THEN "YES" ELSE "NO" )
endif ( )
if ( WITH_IMGCODEC_PXM OR DEFINED HAVE_IMGCODEC_PXM )
status ( " PXM:" HAVE_IMGCODEC_PXM THEN "YES" ELSE "NO" )
endif ( )
2012-05-19 21:48:36 +08:00
# ========================== VIDEO IO ==========================
2011-07-01 20:23:03 +08:00
status ( "" )
2012-05-19 21:48:36 +08:00
status ( " Video I/O:" )
2017-11-14 22:07:04 +08:00
if ( WITH_VFW OR HAVE_VFW )
2013-03-27 23:03:51 +08:00
status ( " Video for Windows:" HAVE_VFW THEN YES ELSE NO )
2017-11-14 22:07:04 +08:00
endif ( )
2013-03-27 23:03:51 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_1394 OR HAVE_DC1394 )
if ( HAVE_DC1394_2 )
2019-04-16 05:29:17 +08:00
status ( " DC1394:" "YES (ver ${DC1394_2_VERSION})" )
2017-11-14 22:07:04 +08:00
elseif ( HAVE_DC1394 )
2019-04-16 05:29:17 +08:00
status ( " DC1394:" "YES (ver ${DC1394_VERSION})" )
2017-11-14 22:07:04 +08:00
else ( )
status ( " DC1394:" "NO" )
endif ( )
endif ( )
2012-05-19 21:48:36 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_FFMPEG OR HAVE_FFMPEG )
2018-05-31 20:39:59 +08:00
if ( OPENCV_FFMPEG_USE_FIND_PACKAGE )
status ( " FFMPEG:" HAVE_FFMPEG THEN "YES (find_package)" ELSE "NO (find_package)" )
elseif ( WIN32 )
2017-03-15 18:19:59 +08:00
status ( " FFMPEG:" HAVE_FFMPEG THEN "YES (prebuilt binaries)" ELSE NO )
2012-05-19 21:48:36 +08:00
else ( )
status ( " FFMPEG:" HAVE_FFMPEG THEN YES ELSE NO )
endif ( )
2016-11-28 04:31:04 +08:00
status ( " avcodec:" FFMPEG_libavcodec_FOUND THEN "YES (ver ${FFMPEG_libavcodec_VERSION})" ELSE NO )
status ( " avformat:" FFMPEG_libavformat_FOUND THEN "YES (ver ${FFMPEG_libavformat_VERSION})" ELSE NO )
status ( " avutil:" FFMPEG_libavutil_FOUND THEN "YES (ver ${FFMPEG_libavutil_VERSION})" ELSE NO )
status ( " swscale:" FFMPEG_libswscale_FOUND THEN "YES (ver ${FFMPEG_libswscale_VERSION})" ELSE NO )
status ( " avresample:" FFMPEG_libavresample_FOUND THEN "YES (ver ${FFMPEG_libavresample_VERSION})" ELSE NO )
endif ( )
2012-05-19 21:48:36 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_GSTREAMER OR HAVE_GSTREAMER )
2019-04-16 05:29:17 +08:00
status ( " GStreamer:" HAVE_GSTREAMER THEN "YES" ELSE NO )
2012-04-14 05:50:59 +08:00
if ( HAVE_GSTREAMER )
2013-03-21 17:17:34 +08:00
status ( " base:" "YES (ver ${GSTREAMER_BASE_VERSION})" )
status ( " video:" "YES (ver ${GSTREAMER_VIDEO_VERSION})" )
status ( " app:" "YES (ver ${GSTREAMER_APP_VERSION})" )
status ( " riff:" "YES (ver ${GSTREAMER_RIFF_VERSION})" )
status ( " pbutils:" "YES (ver ${GSTREAMER_PBUTILS_VERSION})" )
endif ( HAVE_GSTREAMER )
2017-11-14 22:07:04 +08:00
endif ( )
2012-05-19 21:48:36 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_OPENNI OR HAVE_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 ( )
2012-05-19 21:48:36 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_OPENNI2 OR HAVE_OPENNI2 )
status ( " OpenNI2:" HAVE_OPENNI2 THEN "YES (ver ${OPENNI2_VERSION_STRING}, build ${OPENNI2_VERSION_BUILD})" ELSE NO )
endif ( )
2014-07-01 16:07:01 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_PVAPI OR HAVE_PVAPI )
2012-05-19 21:48:36 +08:00
status ( " PvAPI:" HAVE_PVAPI THEN YES ELSE NO )
2017-11-14 22:07:04 +08:00
endif ( )
2012-05-19 21:48:36 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_GIGEAPI OR HAVE_GIGE_API )
2013-02-13 18:18:02 +08:00
status ( " GigEVisionSDK:" HAVE_GIGE_API THEN YES ELSE NO )
2017-11-14 22:07:04 +08:00
endif ( )
2013-02-01 20:40:02 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_ARAVIS OR HAVE_ARAVIS_API )
2016-10-23 00:07:55 +08:00
status ( " Aravis SDK:" HAVE_ARAVIS_API THEN "YES (${ARAVIS_LIBRARIES})" ELSE NO )
2017-11-14 22:07:04 +08:00
endif ( )
2016-10-08 03:55:49 +08:00
2017-11-14 22:07:04 +08:00
if ( APPLE )
2016-09-09 20:38:00 +08:00
status ( " AVFoundation:" HAVE_AVFOUNDATION THEN YES ELSE NO )
if ( WITH_QUICKTIME OR HAVE_QUICKTIME )
2017-11-14 22:07:04 +08:00
status ( " QuickTime:" HAVE_QUICKTIME THEN YES ELSE NO )
2016-09-09 20:38:00 +08:00
endif ( )
if ( WITH_QTKIT OR HAVE_QTKIT )
2017-11-14 22:07:04 +08:00
status ( " QTKit:" HAVE_QTKIT THEN "YES (deprecated)" ELSE NO )
2016-09-09 20:38:00 +08:00
endif ( )
2017-11-14 22:07:04 +08:00
endif ( )
2012-05-19 21:48:36 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_UNICAP OR HAVE_UNICAP )
2019-04-16 05:29:17 +08:00
status ( " UniCap:" HAVE_UNICAP THEN "YES (ver ${UNICAP_libunicap_VERSION})" ELSE NO )
status ( " UniCap ucil:" HAVE_UNICAP THEN "YES (ver ${UNICAP_libucil_VERSION})" ELSE NO )
2017-11-14 22:07:04 +08:00
endif ( )
2012-05-19 21:48:36 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_V4L OR WITH_LIBV4L OR HAVE_LIBV4L OR HAVE_CAMV4L OR HAVE_CAMV4L2 OR HAVE_VIDEOIO )
2019-04-16 05:29:17 +08:00
status ( " libv4l/libv4l2:" HAVE_LIBV4L THEN "${LIBV4L_libv4l1_VERSION} / ${LIBV4L_libv4l2_VERSION}" ELSE "NO" )
2017-11-14 22:07:04 +08:00
ocv_build_features_string ( v4l_status
I F H A V E _ C A M V 4 L T H E N " l i n u x / v i d e o d e v . h "
I F H A V E _ C A M V 4 L 2 T H E N " l i n u x / v i d e o d e v 2 . h "
I F H A V E _ V I D E O I O T H E N " s y s / v i d e o i o . h "
E L S E " N O " )
status ( " v4l/v4l2:" "${v4l_status}" )
endif ( )
2012-02-21 20:42:51 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_DSHOW OR HAVE_DSHOW )
2013-04-03 09:01:20 +08:00
status ( " DirectShow:" HAVE_DSHOW THEN YES ELSE NO )
2017-11-14 22:07:04 +08:00
endif ( )
2013-04-03 09:01:20 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_MSMF OR HAVE_MSMF )
2013-04-03 09:01:20 +08:00
status ( " Media Foundation:" HAVE_MSMF THEN YES ELSE NO )
2018-12-13 19:53:48 +08:00
status ( " DXVA:" HAVE_MSMF_DXVA THEN YES ELSE NO )
2017-11-14 22:07:04 +08:00
endif ( )
2011-06-14 18:11:16 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_XIMEA OR HAVE_XIMEA )
2012-05-19 21:48:36 +08:00
status ( " XIMEA:" HAVE_XIMEA THEN YES ELSE NO )
2017-11-14 22:07:04 +08:00
endif ( )
2012-05-19 21:48:36 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_XINE OR HAVE_XINE )
2019-04-16 05:29:17 +08:00
status ( " Xine:" HAVE_XINE THEN "YES (ver ${XINE_VERSION})" ELSE NO )
2017-11-14 22:07:04 +08:00
endif ( )
2012-04-14 05:50:59 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_INTELPERC OR HAVE_INTELPERC )
2013-12-13 21:25:16 +08:00
status ( " Intel PerC:" HAVE_INTELPERC THEN "YES" ELSE NO )
2017-11-14 22:07:04 +08:00
endif ( )
2013-12-13 21:25:16 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_MFX OR HAVE_MFX )
2017-03-23 16:55:43 +08:00
status ( " Intel Media SDK:" HAVE_MFX THEN "YES (${MFX_LIBRARY})" ELSE NO )
endif ( )
2017-11-14 22:07:04 +08:00
if ( WITH_GPHOTO2 OR HAVE_GPHOTO2 )
2015-05-21 06:41:39 +08:00
status ( " gPhoto2:" HAVE_GPHOTO2 THEN "YES" ELSE NO )
2017-11-14 22:07:04 +08:00
endif ( )
2013-12-13 21:25:16 +08:00
2015-06-11 21:53:07 +08:00
# Order is similar to CV_PARALLEL_FRAMEWORK in core/src/parallel.cpp
2017-11-14 22:07:04 +08:00
ocv_build_features_string ( parallel_status EXCLUSIVE
I F H A V E _ T B B T H E N " TBB ( ver ${ TBB_VERSION_MAJOR } . ${ TBB_VERSION_MINOR } interface ${ TBB_INTERFACE_VERSION } ) "
I F H A V E _ C S T R I P E S T H E N " C = "
I F H A V E _ O P E N M P T H E N " O p e n M P "
I F H A V E _ G C D T H E N " G C D "
I F W I N R T O R H A V E _ C O N C U R R E N C Y T H E N " C o n c u r r e n c y "
I F H A V E _ P T H R E A D S _ P F T H E N " p t h r e a d s "
E L S E " n o n e " )
2015-06-11 21:53:07 +08:00
status ( "" )
2017-11-14 22:07:04 +08:00
status ( " Parallel framework:" "${parallel_status}" )
2015-06-11 21:53:07 +08:00
2017-05-25 23:59:01 +08:00
if ( CV_TRACE OR OPENCV_TRACE )
2017-11-14 22:07:04 +08:00
ocv_build_features_string ( trace_status EXCLUSIVE
I F H A V E _ I T T T H E N " w i t h I n t e l I T T "
E L S E " b u i l t - i n " )
2017-05-25 23:59:01 +08:00
status ( "" )
2017-11-14 22:07:04 +08:00
status ( " Trace: " OPENCV_TRACE THEN "YES (${trace_status})" ELSE NO )
2017-05-25 23:59:01 +08:00
endif ( )
2015-06-11 21:53:07 +08:00
2012-05-19 21:48:36 +08:00
# ========================== Other third-party libraries ==========================
2011-07-01 20:23:03 +08:00
status ( "" )
2011-07-02 23:12:07 +08:00
status ( " Other third-party libraries:" )
2011-06-14 18:11:16 +08:00
2014-06-04 04:29:54 +08:00
if ( WITH_IPP AND HAVE_IPP )
2017-11-14 22:07:04 +08:00
status ( " Intel IPP:" "${IPP_VERSION_STR} [${IPP_VERSION_MAJOR}.${IPP_VERSION_MINOR}.${IPP_VERSION_BUILD}]" )
status ( " at:" "${IPP_ROOT_DIR}" )
2017-08-17 19:57:58 +08:00
if ( NOT HAVE_IPP_ICV )
2017-11-14 22:07:04 +08:00
status ( " linked:" BUILD_WITH_DYNAMIC_IPP THEN "dynamic" ELSE "static" )
2017-04-13 20:50:23 +08:00
endif ( )
if ( HAVE_IPP_IW )
if ( BUILD_IPP_IW )
2017-11-14 22:07:04 +08:00
status ( " Intel IPP IW:" "sources (${IW_VERSION_MAJOR}.${IW_VERSION_MINOR}.${IW_VERSION_UPDATE})" )
2017-04-13 20:50:23 +08:00
else ( )
2017-11-14 22:07:04 +08:00
status ( " Intel IPP IW:" "binaries (${IW_VERSION_MAJOR}.${IW_VERSION_MINOR}.${IW_VERSION_UPDATE})" )
2017-04-13 20:50:23 +08:00
endif ( )
2017-11-14 22:07:04 +08:00
status ( " at:" "${IPP_IW_PATH}" )
2017-04-13 20:50:23 +08:00
else ( )
2017-11-14 22:07:04 +08:00
status ( " Intel IPP IW:" NO )
2014-12-12 21:21:47 +08:00
endif ( )
2013-02-13 18:25:50 +08:00
endif ( )
2012-07-17 01:08:14 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_VA OR HAVE_VA )
status ( " VA:" HAVE_VA THEN "YES" ELSE NO )
endif ( )
2015-08-31 07:33:15 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_VA_INTEL OR HAVE_VA_INTEL )
2018-09-13 17:46:06 +08:00
status ( " Intel VA-API/OpenCL:" HAVE_VA_INTEL THEN "YES (OpenCL: ${VA_INTEL_IOCL_ROOT})" ELSE NO )
2017-11-14 22:07:04 +08:00
endif ( )
2015-08-12 16:59:05 +08:00
2020-03-09 22:59:23 +08:00
if ( WITH_TENGINE OR HAVE_TENGINE )
status ( " Tengine:" HAVE_TENGINE THEN "YES (${TENGINE_LIBRARIES})" ELSE NO )
endif ( )
2017-11-14 22:07:04 +08:00
if ( WITH_LAPACK OR HAVE_LAPACK )
status ( " Lapack:" HAVE_LAPACK THEN "YES (${LAPACK_LIBRARIES})" ELSE NO )
endif ( )
2016-06-03 15:38:30 +08:00
2017-06-21 19:33:47 +08:00
if ( WITH_HALIDE OR HAVE_HALIDE )
2017-11-14 22:07:04 +08:00
status ( " Halide:" HAVE_HALIDE THEN "YES (${HALIDE_LIBRARIES} ${HALIDE_INCLUDE_DIRS})" ELSE NO )
2017-06-21 19:33:47 +08:00
endif ( )
2011-06-14 18:11:16 +08:00
2018-07-30 23:21:17 +08:00
if ( WITH_INF_ENGINE OR INF_ENGINE_TARGET )
if ( INF_ENGINE_TARGET )
2019-08-23 17:54:07 +08:00
list ( GET INF_ENGINE_TARGET 0 ie_target )
2018-07-30 23:21:17 +08:00
set ( __msg "YES (${INF_ENGINE_RELEASE} / ${INF_ENGINE_VERSION})" )
2019-08-23 17:54:07 +08:00
get_target_property ( _lib ${ ie_target } IMPORTED_LOCATION )
get_target_property ( _lib_imp_rel ${ ie_target } IMPORTED_IMPLIB_RELEASE )
get_target_property ( _lib_imp_dbg ${ ie_target } IMPORTED_IMPLIB_DEBUG )
get_target_property ( _lib_rel ${ ie_target } IMPORTED_LOCATION_RELEASE )
get_target_property ( _lib_dbg ${ ie_target } IMPORTED_LOCATION_DEBUG )
2019-05-24 19:37:56 +08:00
ocv_build_features_string ( _lib
I F _ l i b T H E N " $ { _ l i b } "
I F _ l i b _ i m p _ r e l A N D _ l i b _ i m p _ d b g T H E N " $ { _ l i b _ i m p _ r e l } / $ { _ l i b _ i m p _ d b g } "
I F _ l i b _ r e l A N D _ l i b _ d b g T H E N " $ { _ l i b _ r e l } / $ { _ l i b _ d b g } "
2019-08-23 17:54:07 +08:00
I F _ l i b _ r e l T H E N " $ { _ l i b _ r e l } "
I F _ l i b _ d b g T H E N " $ { _ l i b _ d b g } "
2019-05-24 19:37:56 +08:00
E L S E " u n k n o w n "
)
2019-08-23 17:54:07 +08:00
get_target_property ( _inc ${ ie_target } INTERFACE_INCLUDE_DIRECTORIES )
2018-07-17 20:30:56 +08:00
status ( " Inference Engine:" "${__msg}" )
2019-12-02 21:16:06 +08:00
status ( " * libs:" "${_lib}" )
status ( " * includes:" "${_inc}" )
2018-07-17 20:30:56 +08:00
else ( )
status ( " Inference Engine:" "NO" )
endif ( )
2019-12-02 21:16:06 +08:00
endif ( )
if ( WITH_NGRAPH OR HAVE_NGRAPH )
if ( HAVE_NGRAPH )
set ( __target ngraph::ngraph )
set ( __msg "YES (${ngraph_VERSION})" )
get_target_property ( _lib ${ __target } IMPORTED_LOCATION )
get_target_property ( _lib_imp_rel ${ __target } IMPORTED_IMPLIB_RELEASE )
get_target_property ( _lib_imp_dbg ${ __target } IMPORTED_IMPLIB_DEBUG )
get_target_property ( _lib_rel ${ __target } IMPORTED_LOCATION_RELEASE )
get_target_property ( _lib_dbg ${ __target } IMPORTED_LOCATION_DEBUG )
ocv_build_features_string ( _lib
I F _ l i b T H E N " $ { _ l i b } "
I F _ l i b _ i m p _ r e l A N D _ l i b _ i m p _ d b g T H E N " $ { _ l i b _ i m p _ r e l } / $ { _ l i b _ i m p _ d b g } "
I F _ l i b _ r e l A N D _ l i b _ d b g T H E N " $ { _ l i b _ r e l } / $ { _ l i b _ d b g } "
I F _ l i b _ r e l T H E N " $ { _ l i b _ r e l } "
I F _ l i b _ d b g T H E N " $ { _ l i b _ d b g } "
E L S E " u n k n o w n "
)
get_target_property ( _inc ${ __target } INTERFACE_INCLUDE_DIRECTORIES )
status ( " nGraph:" "${__msg}" )
status ( " * libs:" "${_lib}" )
status ( " * includes:" "${_inc}" )
else ( )
status ( " nGraph:" "NO" )
endif ( )
2018-02-06 16:57:35 +08:00
endif ( )
2017-11-14 22:07:04 +08:00
if ( WITH_EIGEN OR HAVE_EIGEN )
status ( " Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO )
endif ( )
2012-04-14 05:50:59 +08:00
2017-11-14 22:07:04 +08:00
if ( WITH_OPENVX OR HAVE_OPENVX )
status ( " OpenVX:" HAVE_OPENVX THEN "YES (${OPENVX_LIBRARIES})" ELSE "NO" )
2012-04-14 05:50:59 +08:00
endif ( )
2017-11-14 22:07:04 +08:00
status ( " Custom HAL:" OpenCV_USED_HAL THEN "YES (${OpenCV_USED_HAL})" ELSE "NO" )
2018-02-01 21:30:23 +08:00
foreach ( s ${ CUSTOM_STATUS } )
status ( ${ CUSTOM_STATUS_${s } } )
endforeach ( )
2017-11-14 22:07:04 +08:00
if ( WITH_CUDA OR HAVE_CUDA )
ocv_build_features_string ( cuda_features
I F H A V E _ C U F F T T H E N " C U F F T "
I F H A V E _ C U B L A S T H E N " C U B L A S "
I F H A V E _ N V C U V I D T H E N " N V C U V I D "
I F C U D A _ F A S T _ M A T H T H E N " F A S T _ M A T H "
E L S E " n o e x t r a f e a t u r e s " )
2013-02-13 18:18:02 +08:00
status ( "" )
2017-11-14 22:07:04 +08:00
status ( " NVIDIA CUDA:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING}, ${cuda_features})" ELSE NO )
if ( HAVE_CUDA )
status ( " NVIDIA GPU arch:" ${ OPENCV_CUDA_ARCH_BIN } )
status ( " NVIDIA PTX archs:" ${ OPENCV_CUDA_ARCH_PTX } )
2013-02-13 18:18:02 +08:00
endif ( )
2017-11-14 22:07:04 +08:00
endif ( )
if ( WITH_OPENCL OR HAVE_OPENCL )
ocv_build_features_string ( opencl_features
I F H A V E _ O P E N C L _ S V M T H E N " S V M "
I F H A V E _ C L A M D F F T T H E N " A M D F F T "
I F H A V E _ C L A M D B L A S T H E N " A M D B L A S "
2019-03-24 23:34:09 +08:00
I F H A V E _ O P E N C L _ D 3 D 1 1 _ N V T H E N " N V D 3 D 1 1 "
2017-11-14 22:07:04 +08:00
E L S E " n o e x t r a f e a t u r e s " )
status ( "" )
status ( " OpenCL:" HAVE_OPENCL THEN "YES (${opencl_features})" ELSE "NO" )
if ( HAVE_OPENCL )
status ( " Include path:" OPENCL_INCLUDE_DIRS THEN "${OPENCL_INCLUDE_DIRS}" ELSE "NO" )
status ( " Link libraries:" OPENCL_LIBRARIES THEN "${OPENCL_LIBRARIES}" ELSE "Dynamic load" )
2013-02-13 18:18:02 +08:00
endif ( )
endif ( )
2012-05-21 02:49:57 +08:00
# ========================== python ==========================
2014-06-30 04:45:24 +08:00
if ( BUILD_opencv_python2 )
2017-11-14 22:07:04 +08:00
status ( "" )
status ( " Python 2:" )
status ( " Interpreter:" PYTHON2INTERP_FOUND THEN "${PYTHON2_EXECUTABLE} (ver ${PYTHON2_VERSION_STRING})" ELSE NO )
2014-06-30 04:45:24 +08:00
if ( PYTHON2LIBS_VERSION_STRING )
status ( " Libraries:" HAVE_opencv_python2 THEN "${PYTHON2_LIBRARIES} (ver ${PYTHON2LIBS_VERSION_STRING})" ELSE NO )
2012-04-30 22:33:52 +08:00
else ( )
2014-06-30 04:45:24 +08:00
status ( " Libraries:" HAVE_opencv_python2 THEN "${PYTHON2_LIBRARIES}" ELSE NO )
2012-04-30 22:33:52 +08:00
endif ( )
2014-06-30 04:45:24 +08:00
status ( " numpy:" PYTHON2_NUMPY_INCLUDE_DIRS THEN "${PYTHON2_NUMPY_INCLUDE_DIRS} (ver ${PYTHON2_NUMPY_VERSION})" ELSE "NO (Python wrappers can not be generated)" )
2018-11-23 05:06:33 +08:00
status ( " install path:" HAVE_opencv_python2 THEN "${__INSTALL_PATH_PYTHON2}" ELSE "-" )
2012-04-14 05:50:59 +08:00
endif ( )
2014-06-30 04:45:24 +08:00
if ( BUILD_opencv_python3 )
2017-11-14 22:07:04 +08:00
status ( "" )
status ( " Python 3:" )
status ( " Interpreter:" PYTHON3INTERP_FOUND THEN "${PYTHON3_EXECUTABLE} (ver ${PYTHON3_VERSION_STRING})" ELSE NO )
2014-06-30 04:45:24 +08:00
if ( PYTHON3LIBS_VERSION_STRING )
status ( " Libraries:" HAVE_opencv_python3 THEN "${PYTHON3_LIBRARIES} (ver ${PYTHON3LIBS_VERSION_STRING})" ELSE NO )
else ( )
status ( " Libraries:" HAVE_opencv_python3 THEN "${PYTHON3_LIBRARIES}" ELSE NO )
endif ( )
status ( " numpy:" PYTHON3_NUMPY_INCLUDE_DIRS THEN "${PYTHON3_NUMPY_INCLUDE_DIRS} (ver ${PYTHON3_NUMPY_VERSION})" ELSE "NO (Python3 wrappers can not be generated)" )
2018-11-23 05:06:33 +08:00
status ( " install path:" HAVE_opencv_python3 THEN "${__INSTALL_PATH_PYTHON3}" ELSE "-" )
2014-06-30 04:45:24 +08:00
endif ( )
status ( "" )
status ( " Python (for build):" PYTHON_DEFAULT_AVAILABLE THEN "${PYTHON_DEFAULT_EXECUTABLE}" ELSE NO )
2017-08-24 00:48:41 +08:00
if ( PYLINT_FOUND AND PYLINT_EXECUTABLE )
2017-11-14 22:07:04 +08:00
status ( " Pylint:" PYLINT_FOUND THEN "${PYLINT_EXECUTABLE} (ver: ${PYLINT_VERSION}, checks: ${PYLINT_TOTAL_TARGETS})" ELSE NO )
2017-08-24 00:48:41 +08:00
endif ( )
2018-05-11 18:52:15 +08:00
if ( FLAKE8_FOUND AND FLAKE8_EXECUTABLE )
status ( " Flake8:" FLAKE8_FOUND THEN "${FLAKE8_EXECUTABLE} (ver: ${FLAKE8_VERSION})" ELSE NO )
endif ( )
2014-06-30 04:45:24 +08:00
2013-02-13 18:25:50 +08:00
# ========================== java ==========================
2019-09-18 23:30:01 +08:00
if ( BUILD_JAVA )
2017-11-14 22:07:04 +08:00
status ( "" )
2018-01-08 02:16:38 +08:00
status ( " Java:" BUILD_FAT_JAVA_LIB THEN "export all functions" ELSE "" )
2017-11-14 22:07:04 +08:00
status ( " ant:" ANT_EXECUTABLE THEN "${ANT_EXECUTABLE} (ver ${ANT_VERSION})" ELSE NO )
if ( NOT ANDROID )
status ( " JNI:" JNI_INCLUDE_DIRS THEN "${JNI_INCLUDE_DIRS}" ELSE NO )
endif ( )
status ( " Java wrappers:" HAVE_opencv_java THEN YES ELSE NO )
status ( " Java tests:" BUILD_TESTS AND opencv_test_java_BINARY_DIR THEN YES ELSE NO )
2013-02-13 18:25:50 +08:00
endif ( )
2018-09-17 19:55:42 +08:00
ocv_cmake_hook ( STATUS_DUMP_EXTRA )
2011-06-14 18:11:16 +08:00
2012-05-19 21:48:36 +08:00
# ========================== auxiliary ==========================
2011-07-01 20:23:03 +08:00
status ( "" )
2017-11-14 22:07:04 +08:00
status ( " Install to:" "${CMAKE_INSTALL_PREFIX}" )
2011-07-01 20:23:03 +08:00
status ( "-----------------------------------------------------------------" )
status ( "" )
2011-07-01 03:45:52 +08:00
2017-11-14 22:07:04 +08:00
2012-04-30 22:33:52 +08:00
ocv_finalize_status ( )
2018-12-07 20:57:25 +08:00
if ( ENABLE_CONFIG_VERIFICATION )
ocv_verify_config ( )
endif ( )
2020-07-07 06:58:17 +08:00
if ( HAVE_CUDA AND COMMAND CUDA_BUILD_CLEAN_TARGET )
CUDA_BUILD_CLEAN_TARGET ( )
endif ( )
2018-01-29 23:02:00 +08:00
ocv_cmake_hook ( POST_FINALIZE )
2014-01-19 03:50:07 +08:00
# ----------------------------------------------------------------------------
# CPack stuff
# ----------------------------------------------------------------------------
include ( cmake/OpenCVPackaging.cmake )
2015-12-25 22:35:38 +08:00
# This should be the last command
ocv_cmake_dump_vars ( "" TOFILE "CMakeVars.txt" )
2016-01-15 19:03:48 +08:00
ocv_cmake_eval ( DEBUG_POST ONCE )