1 # ----------------------------------------------------------------------------
2 # Root CMake file for OpenCV
4 # From the off-tree build directory, invoke:
5 # $ cmake <PATH_TO_OPENCV_ROOT>
7 # ----------------------------------------------------------------------------
9 # Disable in-source builds to prevent source tree corruption.
10 if(" ${CMAKE_SOURCE_DIR}" STREQUAL " ${CMAKE_BINARY_DIR}")
12 FATAL: In-source builds are not allowed.
13 You should create separate directory for build files.
18 include(cmake/OpenCVMinDepVersions.cmake)
20 if(CMAKE_GENERATOR MATCHES Xcode AND XCODE_VERSION VERSION_GREATER 4.3)
21 cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR)
22 elseif(CMAKE_SYSTEM_NAME MATCHES WindowsPhone OR CMAKE_SYSTEM_NAME MATCHES WindowsStore)
23 cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
24 #Required to resolve linker error issues due to incompatibility with CMake v3.0+ policies.
25 #CMake fails to find _fseeko() which leads to subsequent linker error.
26 #See details here: http://www.cmake.org/Wiki/CMake/Policies
27 cmake_policy(VERSION 2.8)
29 cmake_minimum_required(VERSION "${MIN_VER_CMAKE}" FATAL_ERROR)
32 # Following block can broke build in case of cross-compilng
33 # but CMAKE_CROSSCOMPILING variable will be set only on project(OpenCV) command
34 # so we will try to detect crosscompiling by presense of CMAKE_TOOLCHAIN_FILE
35 if(NOT DEFINED CMAKE_INSTALL_PREFIX)
36 if(NOT CMAKE_TOOLCHAIN_FILE)
37 # it _must_ go before project(OpenCV) in order to work
39 set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory")
41 set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")
43 else(NOT CMAKE_TOOLCHAIN_FILE)
44 #Android: set output folder to ${CMAKE_BINARY_DIR}
45 set( LIBRARY_OUTPUT_PATH_ROOT ${CMAKE_BINARY_DIR} CACHE PATH "root for library output, set this to change where android libs are compiled to" )
47 set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory")
48 endif(NOT CMAKE_TOOLCHAIN_FILE)
51 if(CMAKE_SYSTEM_NAME MATCHES WindowsPhone OR CMAKE_SYSTEM_NAME MATCHES WindowsStore)
53 endif(CMAKE_SYSTEM_NAME MATCHES WindowsPhone OR CMAKE_SYSTEM_NAME MATCHES WindowsStore)
56 add_definitions(-DWINRT -DNO_GETENV)
58 # Making definitions available to other configurations and
59 # to filter dependency restrictions at compile time.
60 if(CMAKE_SYSTEM_NAME MATCHES WindowsPhone)
62 add_definitions(-DWINRT_PHONE)
63 elseif(CMAKE_SYSTEM_NAME MATCHES WindowsStore)
65 add_definitions(-DWINRT_STORE)
68 if(CMAKE_SYSTEM_VERSION MATCHES 10)
70 add_definitions(-DWINRT_10)
71 elseif(CMAKE_SYSTEM_VERSION MATCHES 8.1)
73 add_definitions(-DWINRT_8_1)
74 elseif(CMAKE_SYSTEM_VERSION MATCHES 8.0)
76 add_definitions(-DWINRT_8_0)
81 cmake_policy(SET CMP0020 OLD)
85 cmake_policy(SET CMP0022 OLD)
89 cmake_policy(SET CMP0023 NEW)
93 # silence cmake 3.0+ warnings about reading LOCATION attribute
94 cmake_policy(SET CMP0026 OLD)
98 cmake_policy(SET CMP0042 NEW)
102 cmake_policy(SET CMP0051 NEW)
106 cmake_policy(SET CMP0056 NEW)
109 include(cmake/OpenCVUtils.cmake)
111 # must go before the project command
112 ocv_update(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE)
113 if(DEFINED CMAKE_BUILD_TYPE)
114 set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} )
119 project(OpenCV CXX C)
122 set(CMAKE_USE_RELATIVE_PATHS ON CACHE INTERNAL "" FORCE)
125 ocv_cmake_eval(DEBUG_PRE ONCE)
127 ocv_clear_vars(OpenCVModules_TARGETS)
129 include(cmake/OpenCVDownload.cmake)
131 # ----------------------------------------------------------------------------
132 # Break in case of popular CMake configuration mistakes
133 # ----------------------------------------------------------------------------
134 if(NOT CMAKE_SIZEOF_VOID_P GREATER 0)
135 message(FATAL_ERROR "CMake fails to deterimine the bitness of target platform.
136 Please check your CMake and compiler installation. If you are crosscompiling then ensure that your CMake toolchain file correctly sets the compiler details.")
139 # ----------------------------------------------------------------------------
140 # Detect compiler and target platform architecture
141 # ----------------------------------------------------------------------------
142 include(cmake/OpenCVDetectCXXCompiler.cmake)
144 # Add these standard paths to the search paths for FIND_LIBRARY
145 # to find libraries from these locations first
146 if(UNIX AND NOT ANDROID)
147 if(X86_64 OR CMAKE_SIZEOF_VOID_P EQUAL 8)
149 list(APPEND CMAKE_LIBRARY_PATH /lib64)
151 list(APPEND CMAKE_LIBRARY_PATH /lib)
153 if(EXISTS /usr/lib64)
154 list(APPEND CMAKE_LIBRARY_PATH /usr/lib64)
156 list(APPEND CMAKE_LIBRARY_PATH /usr/lib)
158 elseif(X86 OR CMAKE_SIZEOF_VOID_P EQUAL 4)
160 list(APPEND CMAKE_LIBRARY_PATH /lib32)
162 list(APPEND CMAKE_LIBRARY_PATH /lib)
164 if(EXISTS /usr/lib32)
165 list(APPEND CMAKE_LIBRARY_PATH /usr/lib32)
167 list(APPEND CMAKE_LIBRARY_PATH /usr/lib)
172 # Add these standard paths to the search paths for FIND_PATH
173 # to find include files from these locations first
176 list(APPEND CMAKE_INCLUDE_PATH /mingw)
179 list(APPEND CMAKE_INCLUDE_PATH /mingw32)
182 list(APPEND CMAKE_INCLUDE_PATH /mingw64)
186 # ----------------------------------------------------------------------------
187 # OpenCV cmake options
188 # ----------------------------------------------------------------------------
190 OCV_OPTION(OPENCV_ENABLE_NONFREE "Enable non-free algorithms" OFF)
192 # Optional 3rd party components
193 # ===================================================
194 OCV_OPTION(WITH_1394 "Include IEEE1394 support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
195 OCV_OPTION(WITH_AVFOUNDATION "Use AVFoundation for Video I/O (iOS/Mac)" ON IF APPLE)
196 OCV_OPTION(WITH_CARBON "Use Carbon for UI instead of Cocoa" OFF IF APPLE )
197 OCV_OPTION(WITH_CAROTENE "Use NVidia carotene acceleration library for ARM platform" ON IF (ARM OR AARCH64) AND NOT IOS AND NOT (CMAKE_VERSION VERSION_LESS "2.8.11"))
198 OCV_OPTION(WITH_VTK "Include VTK library support (and build opencv_viz module eiher)" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT AND NOT CMAKE_CROSSCOMPILING) )
199 OCV_OPTION(WITH_CUDA "Include NVidia Cuda Runtime support" ON IF (NOT IOS AND NOT WINRT) )
200 OCV_OPTION(WITH_CUFFT "Include NVidia Cuda Fast Fourier Transform (FFT) library support" ON IF (NOT IOS AND NOT WINRT) )
201 OCV_OPTION(WITH_CUBLAS "Include NVidia Cuda Basic Linear Algebra Subprograms (BLAS) library support" OFF IF (NOT IOS AND NOT WINRT) )
202 OCV_OPTION(WITH_NVCUVID "Include NVidia Video Decoding library support" OFF IF (NOT IOS AND NOT APPLE) )
203 OCV_OPTION(WITH_EIGEN "Include Eigen2/Eigen3 support" ON IF (NOT WINRT) )
204 OCV_OPTION(WITH_VFW "Include Video for Windows support" ON IF WIN32 )
205 OCV_OPTION(WITH_FFMPEG "Include FFMPEG support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
206 OCV_OPTION(WITH_GSTREAMER "Include Gstreamer support" ON IF (NOT ANDROID) )
207 OCV_OPTION(WITH_GSTREAMER_0_10 "Enable Gstreamer 0.10 support (instead of 1.x)" OFF )
208 OCV_OPTION(WITH_GTK "Include GTK support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) )
209 OCV_OPTION(WITH_GTK_2_X "Use GTK version 2" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
210 OCV_OPTION(WITH_IPP "Include Intel IPP support" NOT MINGW IF (X86_64 OR X86) AND NOT WINRT )
211 OCV_OPTION(WITH_JASPER "Include JPEG2K support" ON IF (NOT IOS) )
212 OCV_OPTION(WITH_JPEG "Include JPEG support" ON)
213 OCV_OPTION(WITH_WEBP "Include WebP support" ON IF (NOT WINRT) )
214 OCV_OPTION(WITH_OPENEXR "Include ILM support via OpenEXR" ON IF (NOT IOS AND NOT WINRT) )
215 OCV_OPTION(WITH_OPENGL "Include OpenGL support" OFF IF (NOT ANDROID AND NOT WINRT) )
216 OCV_OPTION(WITH_OPENVX "Include OpenVX support" OFF)
217 OCV_OPTION(WITH_OPENNI "Include OpenNI support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
218 OCV_OPTION(WITH_OPENNI2 "Include OpenNI2 support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
219 OCV_OPTION(WITH_PNG "Include PNG support" ON)
220 OCV_OPTION(WITH_GDCM "Include DICOM support" OFF)
221 OCV_OPTION(WITH_PVAPI "Include Prosilica GigE support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
222 OCV_OPTION(WITH_GIGEAPI "Include Smartek GigE support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
223 OCV_OPTION(WITH_ARAVIS "Include Aravis GigE support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT AND NOT WIN32) )
224 OCV_OPTION(WITH_QT "Build with Qt Backend support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
225 OCV_OPTION(WITH_WIN32UI "Build with Win32 UI Backend support" ON IF WIN32 AND NOT WINRT)
226 OCV_OPTION(WITH_QUICKTIME "Use QuickTime for Video I/O" OFF IF APPLE )
227 OCV_OPTION(WITH_QTKIT "Use QTKit Video I/O backend" OFF IF APPLE )
228 OCV_OPTION(WITH_TBB "Include Intel TBB support" OFF IF (NOT IOS AND NOT WINRT) )
229 OCV_OPTION(WITH_OPENMP "Include OpenMP support" OFF)
230 OCV_OPTION(WITH_CSTRIPES "Include C= support" OFF IF (WIN32 AND NOT WINRT) )
231 OCV_OPTION(WITH_PTHREADS_PF "Use pthreads-based parallel_for" ON IF (NOT WIN32 OR MINGW) )
232 OCV_OPTION(WITH_TIFF "Include TIFF support" ON IF (NOT IOS) )
233 OCV_OPTION(WITH_UNICAP "Include Unicap support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
234 OCV_OPTION(WITH_V4L "Include Video 4 Linux support" ON IF (UNIX AND NOT ANDROID) )
235 OCV_OPTION(WITH_LIBV4L "Use libv4l for Video 4 Linux support" OFF IF (UNIX AND NOT ANDROID) )
236 OCV_OPTION(WITH_DSHOW "Build VideoIO with DirectShow support" ON IF (WIN32 AND NOT ARM AND NOT WINRT) )
237 OCV_OPTION(WITH_MSMF "Build VideoIO with Media Foundation support" OFF IF WIN32 )
238 OCV_OPTION(WITH_XIMEA "Include XIMEA cameras support" OFF IF (NOT ANDROID AND NOT WINRT) )
239 OCV_OPTION(WITH_XINE "Include Xine support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
240 OCV_OPTION(WITH_CLP "Include Clp support (EPL)" OFF)
241 OCV_OPTION(WITH_OPENCL "Include OpenCL Runtime support" NOT ANDROID IF (NOT IOS AND NOT WINRT) )
242 OCV_OPTION(WITH_OPENCL_SVM "Include OpenCL Shared Virtual Memory support" OFF ) # experimental
243 OCV_OPTION(WITH_OPENCLAMDFFT "Include AMD OpenCL FFT library support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
244 OCV_OPTION(WITH_OPENCLAMDBLAS "Include AMD OpenCL BLAS library support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
245 OCV_OPTION(WITH_DIRECTX "Include DirectX support" ON IF (WIN32 AND NOT WINRT) )
246 OCV_OPTION(WITH_INTELPERC "Include Intel Perceptual Computing support" OFF IF (WIN32 AND NOT WINRT) )
247 OCV_OPTION(WITH_IPP_A "Include Intel IPP_A support" OFF IF (MSVC OR X86 OR X86_64) )
248 OCV_OPTION(WITH_MATLAB "Include Matlab support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT))
249 OCV_OPTION(WITH_VA "Include VA support" OFF IF (UNIX AND NOT ANDROID) )
250 OCV_OPTION(WITH_VA_INTEL "Include Intel VA-API/OpenCL support" OFF IF (UNIX AND NOT ANDROID) )
251 OCV_OPTION(WITH_GDAL "Include GDAL Support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
252 OCV_OPTION(WITH_GPHOTO2 "Include gPhoto2 library support" ON IF (UNIX AND NOT ANDROID) )
253 OCV_OPTION(WITH_LAPACK "Include Lapack library support" ON IF (NOT ANDROID AND NOT IOS) )
255 # OpenCV build components
256 # ===================================================
257 OCV_OPTION(BUILD_SHARED_LIBS "Build shared libraries (.dll/.so) instead of static ones (.lib/.a)" NOT (ANDROID OR APPLE_FRAMEWORK) )
258 OCV_OPTION(BUILD_opencv_apps "Build utility applications (used for example to train classifiers)" (NOT ANDROID AND NOT WINRT) IF (NOT APPLE_FRAMEWORK) )
259 OCV_OPTION(BUILD_ANDROID_EXAMPLES "Build examples for Android platform" ON IF ANDROID )
260 OCV_OPTION(BUILD_DOCS "Create build rules for OpenCV Documentation" ON IF (NOT WINRT OR APPLE_FRAMEWORK))
261 OCV_OPTION(BUILD_EXAMPLES "Build all examples" OFF )
262 OCV_OPTION(BUILD_PACKAGE "Enables 'make package_source' command" ON IF NOT WINRT)
263 OCV_OPTION(BUILD_PERF_TESTS "Build performance tests" ON IF (NOT APPLE_FRAMEWORK) )
264 OCV_OPTION(BUILD_TESTS "Build accuracy & regression tests" ON IF (NOT APPLE_FRAMEWORK) )
265 OCV_OPTION(BUILD_WITH_DEBUG_INFO "Include debug info into debug libs (not MSCV only)" ON )
266 OCV_OPTION(BUILD_WITH_STATIC_CRT "Enables use of staticaly linked CRT for staticaly linked OpenCV" ON IF MSVC )
267 OCV_OPTION(BUILD_WITH_DYNAMIC_IPP "Enables dynamic linking of IPP (only for standalone IPP)" OFF )
268 OCV_OPTION(BUILD_FAT_JAVA_LIB "Create fat java wrapper containing the whole OpenCV library" ON IF NOT BUILD_SHARED_LIBS AND CMAKE_COMPILER_IS_GNUCXX )
269 OCV_OPTION(BUILD_ANDROID_SERVICE "Build OpenCV Manager for Google Play" OFF IF ANDROID )
270 OCV_OPTION(BUILD_CUDA_STUBS "Build CUDA modules stubs when no CUDA SDK" OFF IF (NOT APPLE_FRAMEWORK) )
273 OCV_OPTION(BUILD_ZLIB "Build zlib from source" WIN32 OR APPLE )
274 OCV_OPTION(BUILD_TIFF "Build libtiff from source" WIN32 OR ANDROID OR APPLE )
275 OCV_OPTION(BUILD_JASPER "Build libjasper from source" WIN32 OR ANDROID OR APPLE )
276 OCV_OPTION(BUILD_JPEG "Build libjpeg from source" WIN32 OR ANDROID OR APPLE )
277 OCV_OPTION(BUILD_PNG "Build libpng from source" WIN32 OR ANDROID OR APPLE )
278 OCV_OPTION(BUILD_OPENEXR "Build openexr from source" (WIN32 OR ANDROID OR APPLE) AND NOT WINRT)
279 OCV_OPTION(BUILD_TBB "Download and build TBB from source" ANDROID )
280 OCV_OPTION(BUILD_IPP_IW "Build IPP IW from source" NOT MINGW IF (X86_64 OR X86) AND NOT WINRT )
282 # OpenCV installation options
283 # ===================================================
284 OCV_OPTION(INSTALL_CREATE_DISTRIB "Change install rules to build the distribution package" OFF )
285 OCV_OPTION(INSTALL_C_EXAMPLES "Install C examples" OFF )
286 OCV_OPTION(INSTALL_PYTHON_EXAMPLES "Install Python examples" OFF )
287 OCV_OPTION(INSTALL_ANDROID_EXAMPLES "Install Android examples" OFF IF ANDROID )
288 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) )
289 OCV_OPTION(INSTALL_TESTS "Install accuracy and performance test binaries and test data" OFF)
291 # OpenCV build options
292 # ===================================================
293 OCV_OPTION(ENABLE_CCACHE "Use ccache" (UNIX AND NOT IOS AND (CMAKE_GENERATOR MATCHES "Makefile" OR CMAKE_GENERATOR MATCHES "Ninja")) )
294 OCV_OPTION(ENABLE_PRECOMPILED_HEADERS "Use precompiled headers" ON IF (NOT IOS AND NOT CMAKE_CROSSCOMPILING) )
295 OCV_OPTION(ENABLE_SOLUTION_FOLDERS "Solution folder in Visual Studio or in other IDEs" (MSVC_IDE OR CMAKE_GENERATOR MATCHES Xcode) )
296 OCV_OPTION(ENABLE_PROFILING "Enable profiling in the GCC compiler (Add flags: -g -pg)" OFF IF CMAKE_COMPILER_IS_GNUCXX )
297 OCV_OPTION(ENABLE_COVERAGE "Enable coverage collection with GCov" OFF IF CMAKE_COMPILER_IS_GNUCXX )
298 OCV_OPTION(ENABLE_OMIT_FRAME_POINTER "Enable -fomit-frame-pointer for GCC" ON IF CMAKE_COMPILER_IS_GNUCXX AND NOT (APPLE AND CMAKE_COMPILER_IS_CLANGCXX) )
299 OCV_OPTION(ENABLE_POWERPC "Enable PowerPC for GCC" ON IF (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_PROCESSOR MATCHES powerpc.*) )
300 OCV_OPTION(ENABLE_FAST_MATH "Enable -ffast-math (not recommended for GCC 4.6.x)" OFF IF (CMAKE_COMPILER_IS_GNUCXX AND (X86 OR X86_64)) )
301 OCV_OPTION(ENABLE_NEON "Enable NEON instructions" "${NEON}" IF CMAKE_COMPILER_IS_GNUCXX AND (ARM OR AARCH64 OR IOS) )
302 OCV_OPTION(ENABLE_VFPV3 "Enable VFPv3-D32 instructions" OFF IF CMAKE_COMPILER_IS_GNUCXX AND (ARM OR AARCH64 OR IOS) )
303 OCV_OPTION(ENABLE_NOISY_WARNINGS "Show all warnings even if they are too noisy" OFF )
304 OCV_OPTION(OPENCV_WARNINGS_ARE_ERRORS "Treat warnings as errors" OFF )
305 OCV_OPTION(ANDROID_EXAMPLES_WITH_LIBS "Build binaries of Android examples with native libraries" OFF IF ANDROID )
306 OCV_OPTION(ENABLE_IMPL_COLLECTION "Collect implementation data on function call" OFF )
307 OCV_OPTION(ENABLE_INSTRUMENTATION "Instrument functions to collect calls trace and performance" OFF )
308 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 CMAKE_COMPILER_IS_GNUCXX) )
309 OCV_OPTION(GENERATE_ABI_DESCRIPTOR "Generate XML file for abi_compliance_checker tool" OFF IF UNIX)
310 OCV_OPTION(CV_ENABLE_INTRINSICS "Use intrinsic-based optimized code" ON )
311 OCV_OPTION(CV_DISABLE_OPTIMIZATION "Disable explicit optimized code (dispatched code/intrinsics/loop unrolling/etc)" OFF )
315 if(ENABLE_IMPL_COLLECTION)
316 add_definitions(-DCV_COLLECT_IMPL_DATA)
320 # ----------------------------------------------------------------------------
321 # Get actual OpenCV version number from sources
322 # ----------------------------------------------------------------------------
323 include(cmake/OpenCVVersion.cmake)
326 # ----------------------------------------------------------------------------
327 # Build & install layouts
328 # ----------------------------------------------------------------------------
330 # Save libs and executables in the same place
331 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin" CACHE PATH "Output directory for applications")
334 if(ANDROID_ABI MATCHES "NEON")
337 if(ANDROID_ABI MATCHES "VFPV3")
343 ocv_update(OPENCV_DOC_INSTALL_PATH doc)
345 ocv_update(OPENCV_DOC_INSTALL_PATH share/OpenCV/doc)
348 if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
349 if(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH)
350 ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "${OpenCV_ARCH}/${OpenCV_RUNTIME}/")
352 message(STATUS "Can't detect runtime and/or arch")
353 ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "")
356 ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "sdk/native/")
358 ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "")
362 ocv_update(OPENCV_SAMPLES_BIN_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}samples/${ANDROID_NDK_ABI_NAME}")
364 ocv_update(OPENCV_SAMPLES_BIN_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}samples")
368 ocv_update(OPENCV_BIN_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}bin/${ANDROID_NDK_ABI_NAME}")
370 ocv_update(OPENCV_BIN_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}bin")
373 if(NOT OPENCV_TEST_INSTALL_PATH)
374 ocv_update(OPENCV_TEST_INSTALL_PATH "${OPENCV_BIN_INSTALL_PATH}")
377 if (OPENCV_TEST_DATA_PATH)
378 get_filename_component(OPENCV_TEST_DATA_PATH ${OPENCV_TEST_DATA_PATH} ABSOLUTE)
382 ocv_update(OPENCV_TEST_DATA_INSTALL_PATH "sdk/etc/testdata")
384 ocv_update(OPENCV_TEST_DATA_INSTALL_PATH "testdata")
386 ocv_update(OPENCV_TEST_DATA_INSTALL_PATH "share/OpenCV/testdata")
390 set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib/${ANDROID_NDK_ABI_NAME}")
391 ocv_update(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib/${ANDROID_NDK_ABI_NAME}")
392 ocv_update(OPENCV_LIB_INSTALL_PATH sdk/native/libs/${ANDROID_NDK_ABI_NAME})
393 ocv_update(OPENCV_3P_LIB_INSTALL_PATH sdk/native/3rdparty/libs/${ANDROID_NDK_ABI_NAME})
394 ocv_update(OPENCV_CONFIG_INSTALL_PATH sdk/native/jni)
395 ocv_update(OPENCV_INCLUDE_INSTALL_PATH sdk/native/jni/include)
396 ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH samples/native)
397 ocv_update(OPENCV_OTHER_INSTALL_PATH sdk/etc)
399 set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib")
400 ocv_update(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}")
402 if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
404 ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}")
406 ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}")
408 ocv_update(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}")
409 ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH samples/native)
410 ocv_update(OPENCV_JAR_INSTALL_PATH java)
411 ocv_update(OPENCV_OTHER_INSTALL_PATH etc)
412 ocv_update(OPENCV_CONFIG_INSTALL_PATH ".")
414 ocv_update(OPENCV_LIB_INSTALL_PATH lib${LIB_SUFFIX})
415 ocv_update(OPENCV_3P_LIB_INSTALL_PATH share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH})
416 ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH share/OpenCV/samples)
417 ocv_update(OPENCV_JAR_INSTALL_PATH share/OpenCV/java)
418 ocv_update(OPENCV_OTHER_INSTALL_PATH share/OpenCV)
420 if(NOT DEFINED OPENCV_CONFIG_INSTALL_PATH)
421 math(EXPR SIZEOF_VOID_P_BITS "8 * ${CMAKE_SIZEOF_VOID_P}")
422 if(LIB_SUFFIX AND NOT SIZEOF_VOID_P_BITS EQUAL LIB_SUFFIX)
423 ocv_update(OPENCV_CONFIG_INSTALL_PATH lib${LIB_SUFFIX}/cmake/opencv)
425 ocv_update(OPENCV_CONFIG_INSTALL_PATH share/OpenCV)
429 ocv_update(OPENCV_INCLUDE_INSTALL_PATH "include")
432 ocv_update(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OPENCV_LIB_INSTALL_PATH}")
433 set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
435 if(INSTALL_TO_MANGLED_PATHS)
436 set(OPENCV_INCLUDE_INSTALL_PATH ${OPENCV_INCLUDE_INSTALL_PATH}/opencv-${OPENCV_VERSION})
438 OPENCV_3P_LIB_INSTALL_PATH
439 OPENCV_SAMPLES_SRC_INSTALL_PATH
440 OPENCV_CONFIG_INSTALL_PATH
441 OPENCV_DOC_INSTALL_PATH
442 OPENCV_JAR_INSTALL_PATH
443 OPENCV_TEST_DATA_INSTALL_PATH
444 OPENCV_OTHER_INSTALL_PATH
446 string(REPLACE "OpenCV" "OpenCV-${OPENCV_VERSION}" ${v} "${${v}}")
447 string(REPLACE "opencv" "opencv-${OPENCV_VERSION}" ${v} "${${v}}")
454 set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")
455 set(OPENCV_DEBUG_POSTFIX d)
458 set(OPENCV_DLLVERSION "")
459 set(OPENCV_DEBUG_POSTFIX "")
462 if(DEFINED CMAKE_DEBUG_POSTFIX)
463 set(OPENCV_DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}")
466 if((INSTALL_CREATE_DISTRIB AND BUILD_SHARED_LIBS AND NOT DEFINED BUILD_opencv_world) OR APPLE_FRAMEWORK)
467 set(BUILD_opencv_world ON CACHE INTERNAL "")
470 # ----------------------------------------------------------------------------
471 # Path for build/platform -specific headers
472 # ----------------------------------------------------------------------------
473 ocv_update(OPENCV_CONFIG_FILE_INCLUDE_DIR "${CMAKE_BINARY_DIR}/" CACHE PATH "Where to create the platform-dependant cvconfig.h")
474 ocv_include_directories(${OPENCV_CONFIG_FILE_INCLUDE_DIR})
476 # ----------------------------------------------------------------------------
477 # Path for additional modules
478 # ----------------------------------------------------------------------------
479 set(OPENCV_EXTRA_MODULES_PATH "" CACHE PATH "Where to look for additional OpenCV modules")
481 # ----------------------------------------------------------------------------
482 # Autodetect if we are in a GIT repository
483 # ----------------------------------------------------------------------------
484 find_host_package(Git QUIET)
486 if(NOT DEFINED OPENCV_VCSVERSION AND GIT_FOUND)
487 execute_process(COMMAND "${GIT_EXECUTABLE}" describe --tags --always --dirty --match "[0-9].[0-9].[0-9]*"
488 WORKING_DIRECTORY "${OpenCV_SOURCE_DIR}"
489 OUTPUT_VARIABLE OPENCV_VCSVERSION
490 RESULT_VARIABLE GIT_RESULT
492 OUTPUT_STRIP_TRAILING_WHITESPACE
494 if(NOT GIT_RESULT EQUAL 0)
495 set(OPENCV_VCSVERSION "unknown")
497 elseif(NOT DEFINED OPENCV_VCSVERSION)
499 set(OPENCV_VCSVERSION "unknown")
503 # ----------------------------------------------------------------------------
504 # OpenCV compiler and linker options
505 # ----------------------------------------------------------------------------
506 # In case of Makefiles if the user does not setup CMAKE_BUILD_TYPE, assume it's Release:
507 if(CMAKE_GENERATOR MATCHES "Makefiles|Ninja" AND "${CMAKE_BUILD_TYPE}" STREQUAL "")
508 set(CMAKE_BUILD_TYPE Release)
511 # --- Python Support ---
512 include(cmake/OpenCVDetectPython.cmake)
514 include(cmake/OpenCVCompilerOptions.cmake)
517 # ----------------------------------------------------------------------------
518 # Use statically or dynamically linked CRT?
520 # ----------------------------------------------------------------------------
522 include(cmake/OpenCVCRTLinkage.cmake)
525 if(WIN32 AND NOT MINGW)
526 add_definitions(-D_VARIADIC_MAX=10)
527 endif(WIN32 AND NOT MINGW)
530 # ----------------------------------------------------------------------------
531 # CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC..
532 # ----------------------------------------------------------------------------
534 if(NOT APPLE_FRAMEWORK)
535 find_package(PkgConfig QUIET)
537 include(CheckFunctionExists)
538 include(CheckIncludeFile)
541 CHECK_INCLUDE_FILE(pthread.h HAVE_LIBPTHREAD)
543 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} dl m log)
544 elseif(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD|NetBSD|DragonFly|OpenBSD")
545 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} m pthread)
547 # no need to link to system libs with emscripten
549 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} dl m pthread rt)
552 set(HAVE_LIBPTHREAD YES)
556 include(cmake/OpenCVPCHSupport.cmake)
557 include(cmake/OpenCVModule.cmake)
559 # ----------------------------------------------------------------------------
560 # Detect endianness of build platform
561 # ----------------------------------------------------------------------------
564 # test_big_endian needs try_compile, which doesn't work for iOS
565 # http://public.kitware.com/Bug/view.php?id=12288
566 set(WORDS_BIGENDIAN 0)
568 include(TestBigEndian)
569 test_big_endian(WORDS_BIGENDIAN)
572 # ----------------------------------------------------------------------------
573 # Detect 3rd-party libraries
574 # ----------------------------------------------------------------------------
576 include(cmake/OpenCVFindLibsGrfmt.cmake)
577 include(cmake/OpenCVFindLibsGUI.cmake)
578 include(cmake/OpenCVFindLibsVideo.cmake)
579 include(cmake/OpenCVFindLibsPerf.cmake)
580 include(cmake/OpenCVFindLAPACK.cmake)
582 # ----------------------------------------------------------------------------
583 # Detect other 3rd-party libraries/tools
584 # ----------------------------------------------------------------------------
586 # --- Doxygen for documentation ---
588 find_package(Doxygen)
590 unset(DOXYGEN_FOUND CACHE)
593 # --- Java Support ---
594 include(cmake/OpenCVDetectApacheAnt.cmake)
596 include(cmake/OpenCVDetectAndroidSDK.cmake)
598 if(NOT ANDROID_TOOLS_Pkg_Revision GREATER 13)
599 message(WARNING "OpenCV requires Android SDK tools revision 14 or newer. Otherwise tests and samples will no be compiled.")
605 if(ANDROID AND ANDROID_EXECUTABLE AND ANT_EXECUTABLE AND (ANT_VERSION VERSION_GREATER 1.7) AND (ANDROID_TOOLS_Pkg_Revision GREATER 13))
606 SET(CAN_BUILD_ANDROID_PROJECTS TRUE)
608 SET(CAN_BUILD_ANDROID_PROJECTS FALSE)
613 include(cmake/OpenCVDetectOpenCL.cmake)
618 include(cmake/OpenCVDetectDirectX.cmake)
621 # --- Matlab/Octave ---
623 include(cmake/OpenCVFindMatlab.cmake)
626 include(cmake/OpenCVDetectVTK.cmake)
629 include(cmake/FindOpenVX.cmake)
632 # ----------------------------------------------------------------------------
634 # ----------------------------------------------------------------------------
635 set(_hal_includes "")
636 macro(ocv_hal_register HAL_LIBRARIES_VAR HAL_HEADERS_VAR HAL_INCLUDE_DIRS_VAR)
638 foreach (l ${${HAL_LIBRARIES_VAR}})
640 get_filename_component(l "${l}" ABSOLUTE)
642 list(APPEND OPENCV_HAL_LINKER_LIBS ${l})
645 foreach (h ${${HAL_HEADERS_VAR}})
646 set(_hal_includes "${_hal_includes}\n#include \"${h}\"")
649 ocv_include_directories(${${HAL_INCLUDE_DIRS_VAR}})
652 if(NOT DEFINED OpenCV_HAL)
653 set(OpenCV_HAL "OpenCV_HAL")
657 if(NOT ";${OpenCV_HAL};" MATCHES ";openvx;")
658 set(OpenCV_HAL "openvx;${OpenCV_HAL}")
663 ocv_debug_message(STATUS "Enable carotene acceleration")
664 if(NOT ";${OpenCV_HAL};" MATCHES ";carotene;")
665 set(OpenCV_HAL "carotene;${OpenCV_HAL}")
669 foreach(hal ${OpenCV_HAL})
670 if(hal STREQUAL "carotene")
671 add_subdirectory(3rdparty/carotene/hal)
672 ocv_hal_register(CAROTENE_HAL_LIBRARIES CAROTENE_HAL_HEADERS CAROTENE_HAL_INCLUDE_DIRS)
673 list(APPEND OpenCV_USED_HAL "carotene (ver ${CAROTENE_HAL_VERSION})")
674 elseif(hal STREQUAL "openvx")
675 add_subdirectory(3rdparty/openvx)
676 ocv_hal_register(OPENVX_HAL_LIBRARIES OPENVX_HAL_HEADERS OPENVX_HAL_INCLUDE_DIRS)
677 list(APPEND OpenCV_USED_HAL "openvx (ver ${OPENVX_HAL_VERSION})")
679 ocv_debug_message(STATUS "OpenCV HAL: ${hal} ...")
680 ocv_clear_vars(OpenCV_HAL_LIBRARIES OpenCV_HAL_HEADERS OpenCV_HAL_INCLUDE_DIRS)
681 find_package(${hal} NO_MODULE QUIET)
683 ocv_hal_register(OpenCV_HAL_LIBRARIES OpenCV_HAL_HEADERS OpenCV_HAL_INCLUDE_DIRS)
684 list(APPEND OpenCV_USED_HAL "${hal} (ver ${${hal}_VERSION})")
688 configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/custom_hal.hpp.in" "${CMAKE_BINARY_DIR}/custom_hal.hpp" @ONLY)
692 # ----------------------------------------------------------------------------
693 # Add CUDA libraries (needed for apps/tools, samples)
694 # ----------------------------------------------------------------------------
696 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY})
698 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CUDA_cublas_LIBRARY})
701 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CUDA_cufft_LIBRARY})
703 foreach(p ${CUDA_LIBS_PATH})
704 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CMAKE_LIBRARY_PATH_FLAG}${p})
707 # ----------------------------------------------------------------------------
709 # ----------------------------------------------------------------------------
710 if(ENABLE_SOLUTION_FOLDERS)
711 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
712 set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMakeTargets")
715 # Extra OpenCV targets: uninstall, package_source, perf, etc.
716 include(cmake/OpenCVExtraTargets.cmake)
719 # ----------------------------------------------------------------------------
720 # Process subdirectories
721 # ----------------------------------------------------------------------------
723 # opencv.hpp and legacy headers
724 add_subdirectory(include)
727 add_subdirectory(modules)
729 # Generate targets for documentation
730 add_subdirectory(doc)
732 # various data that is used by cv libraries and/or demo applications.
733 add_subdirectory(data)
736 if(BUILD_opencv_apps)
737 add_subdirectory(apps)
741 if(BUILD_EXAMPLES OR BUILD_ANDROID_EXAMPLES OR INSTALL_PYTHON_EXAMPLES)
742 add_subdirectory(samples)
746 add_subdirectory(platforms/android/service)
749 # ----------------------------------------------------------------------------
750 # Finalization: generate configuration-based files
751 # ----------------------------------------------------------------------------
753 # Generate platform-dependent and configuration-dependent headers
754 include(cmake/OpenCVGenHeaders.cmake)
756 # Generate opencv.pc for pkg-config command
757 include(cmake/OpenCVGenPkgconfig.cmake)
759 # Generate OpenCV.mk for ndk-build (Android build tool)
760 include(cmake/OpenCVGenAndroidMK.cmake)
762 # Generate OpenCVConfig.cmake and OpenCVConfig-version.cmake for cmake projects
763 include(cmake/OpenCVGenConfig.cmake)
765 # Generate Info.plist for the IOS framework
767 include(cmake/OpenCVGenInfoPlist.cmake)
770 # Generate ABI descriptor
771 include(cmake/OpenCVGenABI.cmake)
773 # Generate environment setup file
774 if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH)
776 get_filename_component(TEST_PATH ${OPENCV_TEST_INSTALL_PATH} DIRECTORY)
777 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/opencv_run_all_tests_android.sh.in"
778 "${CMAKE_BINARY_DIR}/unix-install/opencv_run_all_tests.sh" @ONLY)
779 install(PROGRAMS "${CMAKE_BINARY_DIR}/unix-install/opencv_run_all_tests.sh"
780 DESTINATION ./ COMPONENT tests)
782 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/opencv_run_all_tests_windows.cmd.in"
783 "${CMAKE_BINARY_DIR}/win-install/opencv_run_all_tests.cmd" @ONLY)
784 install(PROGRAMS "${CMAKE_BINARY_DIR}/win-install/opencv_run_all_tests.cmd"
785 DESTINATION ${OPENCV_TEST_INSTALL_PATH} COMPONENT tests)
787 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/opencv_run_all_tests_unix.sh.in"
788 "${CMAKE_BINARY_DIR}/unix-install/opencv_run_all_tests.sh" @ONLY)
789 install(PROGRAMS "${CMAKE_BINARY_DIR}/unix-install/opencv_run_all_tests.sh"
790 DESTINATION ${OPENCV_TEST_INSTALL_PATH} COMPONENT tests)
794 if(NOT OPENCV_README_FILE)
796 set(OPENCV_README_FILE ${CMAKE_CURRENT_SOURCE_DIR}/platforms/android/README.android)
800 if(NOT OPENCV_LICENSE_FILE)
801 set(OPENCV_LICENSE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
804 # for UNIX it does not make sense as LICENSE and readme will be part of the package automatically
805 if(ANDROID OR NOT UNIX)
806 install(FILES ${OPENCV_LICENSE_FILE}
807 PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
808 DESTINATION ./ COMPONENT libs)
809 if(OPENCV_README_FILE)
810 install(FILES ${OPENCV_README_FILE}
811 PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
812 DESTINATION ./ COMPONENT libs)
816 # ----------------------------------------------------------------------------
818 # ----------------------------------------------------------------------------
820 status("General configuration for OpenCV ${OPENCV_VERSION} =====================================")
821 if(OPENCV_VCSVERSION)
822 status(" Version control:" ${OPENCV_VCSVERSION})
824 if(OPENCV_EXTRA_MODULES_PATH AND NOT BUILD_INFO_SKIP_EXTRA_MODULES)
825 set(__dump_extra_header OFF)
826 foreach(p ${OPENCV_EXTRA_MODULES_PATH})
828 if(NOT __dump_extra_header)
829 set(__dump_extra_header ON)
831 status(" Extra modules:")
835 set(EXTRA_MODULES_VCSVERSION "unknown")
837 execute_process(COMMAND "${GIT_EXECUTABLE}" describe --tags --always --dirty --match "[0-9].[0-9].[0-9]*"
838 WORKING_DIRECTORY "${p}"
839 OUTPUT_VARIABLE EXTRA_MODULES_VCSVERSION
840 RESULT_VARIABLE GIT_RESULT
842 OUTPUT_STRIP_TRAILING_WHITESPACE
844 if(NOT GIT_RESULT EQUAL 0)
845 set(EXTRA_MODULES_VCSVERSION "unknown")
848 status(" Location (extra):" ${p})
849 status(" Version control (extra):" ${EXTRA_MODULES_VCSVERSION})
852 unset(__dump_extra_header)
855 # ========================== build platform ==========================
858 if(NOT CMAKE_VERSION VERSION_LESS 2.8.11 AND NOT BUILD_INFO_SKIP_TIMESTAMP)
859 string(TIMESTAMP TIMESTAMP "" UTC)
861 status(" Timestamp:" ${TIMESTAMP})
864 status(" Host:" ${CMAKE_HOST_SYSTEM_NAME} ${CMAKE_HOST_SYSTEM_VERSION} ${CMAKE_HOST_SYSTEM_PROCESSOR})
865 if(CMAKE_CROSSCOMPILING)
866 status(" Target:" ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR})
868 status(" CMake:" ${CMAKE_VERSION})
869 status(" CMake generator:" ${CMAKE_GENERATOR})
870 status(" CMake build tool:" ${CMAKE_BUILD_TOOL})
872 status(" MSVC:" ${MSVC_VERSION})
874 if(CMAKE_GENERATOR MATCHES Xcode)
875 status(" Xcode:" ${XCODE_VERSION})
877 if(NOT CMAKE_GENERATOR MATCHES "Xcode|Visual Studio")
878 status(" Configuration:" ${CMAKE_BUILD_TYPE})
882 # ========================= CPU code generation mode =========================
884 status(" CPU/HW features:")
885 status(" Baseline:" "${CPU_BASELINE_FINAL}")
886 if(NOT CPU_BASELINE STREQUAL CPU_BASELINE_FINAL)
887 status(" requested:" "${CPU_BASELINE}")
889 if(CPU_BASELINE_REQUIRE)
890 status(" required:" "${CPU_BASELINE_REQUIRE}")
892 if(CPU_BASELINE_DISABLE)
893 status(" disabled:" "${CPU_BASELINE_DISABLE}")
895 if(CPU_DISPATCH_FINAL OR CPU_DISPATCH)
896 status(" Dispatched code generation:" "${CPU_DISPATCH_FINAL}")
897 if(NOT CPU_DISPATCH STREQUAL CPU_DISPATCH_FINAL)
898 status(" requested:" "${CPU_DISPATCH}")
900 if(CPU_DISPATCH_REQUIRE)
901 status(" required:" "${CPU_DISPATCH_REQUIRE}")
903 foreach(OPT ${CPU_DISPATCH_FINAL})
904 status(" ${OPT} (${CPU_${OPT}_USAGE_COUNT} files):" "+ ${CPU_DISPATCH_${OPT}_INCLUDED}")
908 # ========================== C/C++ options ==========================
909 if(CMAKE_CXX_COMPILER_VERSION)
910 set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} (ver ${CMAKE_CXX_COMPILER_VERSION})")
911 elseif(CMAKE_COMPILER_IS_CLANGCXX)
912 set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} (ver ${CMAKE_CLANG_REGEX_VERSION})")
913 elseif(CMAKE_COMPILER_IS_GNUCXX)
914 set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} (ver ${CMAKE_GCC_REGEX_VERSION})")
916 set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1}")
918 string(STRIP "${OPENCV_COMPILER_STR}" OPENCV_COMPILER_STR)
922 status(" Built as dynamic libs?:" BUILD_SHARED_LIBS THEN YES ELSE NO)
923 status(" C++ Compiler:" ${OPENCV_COMPILER_STR})
924 status(" C++ flags (Release):" ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE})
925 status(" C++ flags (Debug):" ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG})
926 status(" C Compiler:" ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1})
927 status(" C flags (Release):" ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_RELEASE})
928 status(" C flags (Debug):" ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_DEBUG})
930 status(" Linker flags (Release):" ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_RELEASE})
931 status(" Linker flags (Debug):" ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_DEBUG})
933 status(" Linker flags (Release):" ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_RELEASE})
934 status(" Linker flags (Debug):" ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_DEBUG})
936 status(" ccache:" CMAKE_COMPILER_IS_CCACHE THEN YES ELSE NO)
937 status(" Precompiled headers:" PCHSupport_FOUND AND ENABLE_PRECOMPILED_HEADERS THEN YES ELSE NO)
939 # ========================== Dependencies ============================
940 ocv_get_all_libs(deps_modules deps_extra deps_3rdparty)
941 status(" Extra dependencies:" ${deps_extra})
942 status(" 3rdparty dependencies:" ${deps_3rdparty})
944 # ========================== OpenCV modules ==========================
946 status(" OpenCV modules:")
947 string(REPLACE "opencv_" "" OPENCV_MODULES_BUILD_ST "${OPENCV_MODULES_BUILD}")
948 string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_USER_ST "${OPENCV_MODULES_DISABLED_USER}")
949 string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_FORCE_ST "${OPENCV_MODULES_DISABLED_FORCE}")
950 set(OPENCV_MODULES_DISABLED_AUTO_ST "")
951 foreach(m ${OPENCV_MODULES_DISABLED_AUTO})
953 foreach(d ${OPENCV_MODULE_${m}_DEPS})
954 if(d MATCHES "^opencv_" AND NOT HAVE_${d})
955 list(APPEND __mdeps ${d})
959 list(APPEND OPENCV_MODULES_DISABLED_AUTO_ST "${m}(deps: ${__mdeps})")
961 list(APPEND OPENCV_MODULES_DISABLED_AUTO_ST "${m}")
964 string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_AUTO_ST "${OPENCV_MODULES_DISABLED_AUTO_ST}")
966 status(" To be built:" OPENCV_MODULES_BUILD THEN ${OPENCV_MODULES_BUILD_ST} ELSE "-")
967 status(" Disabled:" OPENCV_MODULES_DISABLED_USER THEN ${OPENCV_MODULES_DISABLED_USER_ST} ELSE "-")
968 status(" Disabled by dependency:" OPENCV_MODULES_DISABLED_AUTO THEN ${OPENCV_MODULES_DISABLED_AUTO_ST} ELSE "-")
969 status(" Unavailable:" OPENCV_MODULES_DISABLED_FORCE THEN ${OPENCV_MODULES_DISABLED_FORCE_ST} ELSE "-")
971 if(OPENCV_ENABLE_NONFREE)
973 status(" Non-free algorithms are enabled")
976 # ========================== Android details ==========================
980 status(" Android ABI:" ${ANDROID_ABI})
981 status(" STL type:" ${ANDROID_STL})
982 status(" Native API level:" android-${ANDROID_NATIVE_API_LEVEL})
983 android_get_compatible_target(android_sdk_target_status ${ANDROID_NATIVE_API_LEVEL} ${ANDROID_SDK_TARGET} 11)
984 status(" SDK target:" "${android_sdk_target_status}")
985 if(BUILD_WITH_ANDROID_NDK)
986 status(" Android NDK:" "${ANDROID_NDK} (toolchain: ${ANDROID_TOOLCHAIN_NAME})")
987 elseif(BUILD_WITH_STANDALONE_TOOLCHAIN)
988 status(" Android toolchain:" "${ANDROID_STANDALONE_TOOLCHAIN}")
990 status(" android tool:" ANDROID_EXECUTABLE THEN "${ANDROID_EXECUTABLE} (${ANDROID_TOOLS_Pkg_Desc})" ELSE NO)
991 status(" Google Play manager:" BUILD_ANDROID_SERVICE THEN YES ELSE NO)
992 status(" Android examples:" BUILD_ANDROID_EXAMPLES AND CAN_BUILD_ANDROID_PROJECTS THEN YES ELSE NO)
995 # ================== Windows RT features ==================
998 status(" Windows RT support:" WINRT THEN YES ELSE NO)
1000 status(" Building for Microsoft platform: " ${CMAKE_SYSTEM_NAME})
1001 status(" Building for architectures: " ${CMAKE_VS_EFFECTIVE_PLATFORMS})
1002 status(" Building for version: " ${CMAKE_SYSTEM_VERSION})
1003 if (DEFINED ENABLE_WINRT_MODE_NATIVE)
1004 status(" Building for C++ without CX extensions")
1009 # ========================== GUI ==========================
1014 status(" QT 5.x:" HAVE_QT THEN "YES (ver ${Qt5Core_VERSION_STRING})" ELSE NO)
1015 status(" QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${Qt5OpenGL_LIBRARIES} ${Qt5OpenGL_VERSION_STRING})" ELSE NO)
1017 status(" QT 4.x:" HAVE_QT THEN "YES (ver ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH} ${QT_EDITION})" ELSE NO)
1018 status(" QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${QT_QTOPENGL_LIBRARY})" ELSE NO)
1023 if(DEFINED WITH_WIN32UI)
1024 status(" Win32 UI:" HAVE_WIN32UI THEN YES ELSE NO)
1028 status(" Carbon:" YES)
1030 status(" Cocoa:" YES)
1034 status(" GTK+ 3.x:" HAVE_GTK THEN "YES (ver ${ALIASOF_gtk+-3.0_VERSION})" ELSE NO)
1036 status(" GTK+ 2.x:" HAVE_GTK THEN "YES (ver ${ALIASOF_gtk+-2.0_VERSION})" ELSE NO)
1040 status(" GThread :" HAVE_GTHREAD THEN "YES (ver ${ALIASOF_gthread-2.0_VERSION})" ELSE NO)
1041 status(" GtkGlExt:" HAVE_GTKGLEXT THEN "YES (ver ${ALIASOF_gtkglext-1.0_VERSION})" ELSE NO)
1046 status(" OpenGL support:" HAVE_OPENGL THEN "YES (${OPENGL_LIBRARIES})" ELSE NO)
1047 status(" VTK support:" HAVE_VTK THEN "YES (ver ${VTK_VERSION})" ELSE NO)
1049 # ========================== MEDIA IO ==========================
1051 status(" Media I/O: ")
1052 status(" ZLib:" BUILD_ZLIB THEN "build (ver ${ZLIB_VERSION_STRING})" ELSE "${ZLIB_LIBRARIES} (ver ${ZLIB_VERSION_STRING})")
1055 status(" JPEG:" JPEG_FOUND THEN "${JPEG_LIBRARY} (ver ${JPEG_LIB_VERSION})" ELSE "build (ver ${JPEG_LIB_VERSION})")
1057 status(" JPEG:" "NO")
1061 status(" WEBP:" WEBP_FOUND THEN "${WEBP_LIBRARY} (ver ${WEBP_VERSION})" ELSE "build (ver ${WEBP_VERSION})")
1063 status(" WEBP:" "NO")
1067 status(" PNG:" PNG_FOUND THEN "${PNG_LIBRARY} (ver ${PNG_VERSION})" ELSE "build (ver ${PNG_VERSION})")
1069 status(" PNG:" "NO")
1073 if(TIFF_VERSION_STRING AND TIFF_FOUND)
1074 status(" TIFF:" "${TIFF_LIBRARY} (ver ${TIFF_VERSION} - ${TIFF_VERSION_STRING})")
1076 status(" TIFF:" TIFF_FOUND THEN "${TIFF_LIBRARY} (ver ${TIFF_VERSION})" ELSE "build (ver ${TIFF_VERSION} - ${TIFF_VERSION_STRING})")
1079 status(" TIFF:" "NO")
1082 status(" JPEG 2000:" JASPER_FOUND THEN "${JASPER_LIBRARY} (ver ${JASPER_VERSION_STRING})" ELSE "build (ver ${JASPER_VERSION_STRING})")
1084 status(" JPEG 2000:" "NO")
1087 status(" OpenEXR:" OPENEXR_FOUND THEN "${OPENEXR_LIBRARIES} (ver ${OPENEXR_VERSION})" ELSE "build (ver ${OPENEXR_VERSION})")
1089 status(" OpenEXR:" "NO")
1093 status(" GDAL:" GDAL_FOUND THEN "${GDAL_LIBRARY}" ELSE "NO")
1095 status(" GDAL:" "NO")
1099 status(" GDCM:" GDCM_FOUND THEN "YES (ver ${GDCM_VERSION})" ELSE "NO")
1101 status(" GDCM:" "NO")
1104 # ========================== VIDEO IO ==========================
1106 status(" Video I/O:")
1108 if (DEFINED WITH_VFW)
1109 status(" Video for Windows:" HAVE_VFW THEN YES ELSE NO)
1110 endif(DEFINED WITH_VFW)
1112 if(DEFINED WITH_1394)
1113 status(" DC1394 1.x:" HAVE_DC1394 THEN "YES (ver ${ALIASOF_libdc1394_VERSION})" ELSE NO)
1114 status(" DC1394 2.x:" HAVE_DC1394_2 THEN "YES (ver ${ALIASOF_libdc1394-2_VERSION})" ELSE NO)
1115 endif(DEFINED WITH_1394)
1117 if(DEFINED WITH_FFMPEG OR HAVE_FFMPEG)
1119 status(" FFMPEG:" HAVE_FFMPEG THEN "YES (prebuilt binaries)" ELSE NO)
1121 status(" FFMPEG:" HAVE_FFMPEG THEN YES ELSE NO)
1123 status(" avcodec:" FFMPEG_libavcodec_FOUND THEN "YES (ver ${FFMPEG_libavcodec_VERSION})" ELSE NO)
1124 status(" avformat:" FFMPEG_libavformat_FOUND THEN "YES (ver ${FFMPEG_libavformat_VERSION})" ELSE NO)
1125 status(" avutil:" FFMPEG_libavutil_FOUND THEN "YES (ver ${FFMPEG_libavutil_VERSION})" ELSE NO)
1126 status(" swscale:" FFMPEG_libswscale_FOUND THEN "YES (ver ${FFMPEG_libswscale_VERSION})" ELSE NO)
1127 status(" avresample:" FFMPEG_libavresample_FOUND THEN "YES (ver ${FFMPEG_libavresample_VERSION})" ELSE NO)
1130 if(DEFINED WITH_GSTREAMER)
1131 status(" GStreamer:" HAVE_GSTREAMER THEN "" ELSE NO)
1133 status(" base:" "YES (ver ${GSTREAMER_BASE_VERSION})")
1134 status(" video:" "YES (ver ${GSTREAMER_VIDEO_VERSION})")
1135 status(" app:" "YES (ver ${GSTREAMER_APP_VERSION})")
1136 status(" riff:" "YES (ver ${GSTREAMER_RIFF_VERSION})")
1137 status(" pbutils:" "YES (ver ${GSTREAMER_PBUTILS_VERSION})")
1138 endif(HAVE_GSTREAMER)
1139 endif(DEFINED WITH_GSTREAMER)
1141 if(DEFINED WITH_OPENNI)
1142 status(" OpenNI:" HAVE_OPENNI THEN "YES (ver ${OPENNI_VERSION_STRING}, build ${OPENNI_VERSION_BUILD})"
1144 status(" OpenNI PrimeSensor Modules:" HAVE_OPENNI_PRIME_SENSOR_MODULE
1145 THEN "YES (${OPENNI_PRIME_SENSOR_MODULE})" ELSE NO)
1146 endif(DEFINED WITH_OPENNI)
1148 if(DEFINED WITH_OPENNI2)
1149 status(" OpenNI2:" HAVE_OPENNI2 THEN "YES (ver ${OPENNI2_VERSION_STRING}, build ${OPENNI2_VERSION_BUILD})"
1151 endif(DEFINED WITH_OPENNI2)
1153 if(DEFINED WITH_PVAPI)
1154 status(" PvAPI:" HAVE_PVAPI THEN YES ELSE NO)
1155 endif(DEFINED WITH_PVAPI)
1157 if(DEFINED WITH_GIGEAPI)
1158 status(" GigEVisionSDK:" HAVE_GIGE_API THEN YES ELSE NO)
1159 endif(DEFINED WITH_GIGEAPI)
1161 if(DEFINED WITH_ARAVIS)
1162 status(" Aravis SDK:" HAVE_ARAVIS_API THEN "YES (${ARAVIS_LIBRARIES})" ELSE NO)
1163 endif(DEFINED WITH_ARAVIS)
1166 status(" AVFoundation:" HAVE_AVFOUNDATION THEN YES ELSE NO)
1167 if(WITH_QUICKTIME OR HAVE_QUICKTIME)
1168 status(" QuickTime:" HAVE_QUICKTIME THEN YES ELSE NO)
1170 if(WITH_QTKIT OR HAVE_QTKIT)
1171 status(" QTKit:" HAVE_QTKIT THEN "YES (deprecated)" ELSE NO)
1173 endif(DEFINED APPLE)
1175 if(DEFINED WITH_UNICAP)
1176 status(" UniCap:" HAVE_UNICAP THEN "YES (ver ${ALIASOF_libunicap_VERSION})" ELSE NO)
1177 status(" UniCap ucil:" HAVE_UNICAP_UCIL THEN "YES (ver ${ALIASOF_libucil_VERSION})" ELSE NO)
1178 endif(DEFINED WITH_UNICAP)
1180 if(DEFINED WITH_V4L)
1182 set(HAVE_CAMV4L_STR "YES")
1184 set(HAVE_CAMV4L_STR "NO")
1187 set(HAVE_CAMV4L2_STR "YES")
1188 elseif(HAVE_VIDEOIO)
1189 set(HAVE_CAMV4L2_STR "YES(videoio)")
1191 set(HAVE_CAMV4L2_STR "NO")
1193 status(" V4L/V4L2:" HAVE_LIBV4L
1194 THEN "Using libv4l1 (ver ${ALIASOF_libv4l1_VERSION}) / libv4l2 (ver ${ALIASOF_libv4l2_VERSION})"
1195 ELSE "${HAVE_CAMV4L_STR}/${HAVE_CAMV4L2_STR}")
1196 endif(DEFINED WITH_V4L)
1198 if(DEFINED WITH_DSHOW)
1199 status(" DirectShow:" HAVE_DSHOW THEN YES ELSE NO)
1200 endif(DEFINED WITH_DSHOW)
1202 if(DEFINED WITH_MSMF)
1203 status(" Media Foundation:" HAVE_MSMF THEN YES ELSE NO)
1204 endif(DEFINED WITH_MSMF)
1206 if(DEFINED WITH_XIMEA)
1207 status(" XIMEA:" HAVE_XIMEA THEN YES ELSE NO)
1208 endif(DEFINED WITH_XIMEA)
1210 if(DEFINED WITH_XINE)
1211 status(" Xine:" HAVE_XINE THEN "YES (ver ${ALIASOF_libxine_VERSION})" ELSE NO)
1212 endif(DEFINED WITH_XINE)
1214 if(DEFINED WITH_INTELPERC)
1215 status(" Intel PerC:" HAVE_INTELPERC THEN "YES" ELSE NO)
1216 endif(DEFINED WITH_INTELPERC)
1218 if(DEFINED WITH_GPHOTO2)
1219 status(" gPhoto2:" HAVE_GPHOTO2 THEN "YES" ELSE NO)
1220 endif(DEFINED WITH_GPHOTO2)
1223 # Order is similar to CV_PARALLEL_FRAMEWORK in core/src/parallel.cpp
1224 ocv_clear_vars(CV_PARALLEL_FRAMEWORK)
1226 set(CV_PARALLEL_FRAMEWORK "TBB (ver ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} interface ${TBB_INTERFACE_VERSION})")
1227 elseif(HAVE_CSTRIPES)
1228 set(CV_PARALLEL_FRAMEWORK "C=")
1230 set(CV_PARALLEL_FRAMEWORK "OpenMP")
1232 set(CV_PARALLEL_FRAMEWORK "GCD")
1233 elseif(WINRT OR HAVE_CONCURRENCY)
1234 set(CV_PARALLEL_FRAMEWORK "Concurrency")
1235 elseif(HAVE_PTHREADS_PF)
1236 set(CV_PARALLEL_FRAMEWORK "pthreads")
1238 set(CV_PARALLEL_FRAMEWORK "none")
1241 status(" Parallel framework:" TRUE THEN "${CV_PARALLEL_FRAMEWORK}" ELSE NO)
1244 # ========================== Other third-party libraries ==========================
1246 status(" Other third-party libraries:")
1248 if(WITH_IPP AND HAVE_IPP)
1249 status(" Use Intel IPP:" "${IPP_VERSION_STR} [${IPP_VERSION_MAJOR}.${IPP_VERSION_MINOR}.${IPP_VERSION_BUILD}]")
1250 status(" at:" "${IPP_ROOT_DIR}")
1251 if(NOT HAVE_IPP_ICV_ONLY)
1252 status(" linked:" BUILD_WITH_DYNAMIC_IPP THEN "dynamic" ELSE "static")
1256 status(" Use Intel IPP IW:" "build (${IW_VERSION_MAJOR}.${IW_VERSION_MINOR}.${IW_VERSION_UPDATE})")
1258 status(" Use Intel IPP IW:" "prebuilt binaries (${IW_VERSION_MAJOR}.${IW_VERSION_MINOR}.${IW_VERSION_UPDATE})")
1261 status(" Use Intel IPP IW:" NO)
1264 status(" Use Intel IPP:" WITH_IPP AND NOT HAVE_IPP THEN "IPP not found or implicitly disabled" ELSE NO)
1265 status(" Use Intel IPP IW:" WITH_IPP AND NOT HAVE_IPP AND HAVE_IPP_IW THEN "IPP not found or implicitly disabled" ELSE NO)
1268 if(DEFINED WITH_IPP_A)
1269 status(" Use Intel IPP Async:" HAVE_IPP_A THEN "YES" ELSE NO)
1270 endif(DEFINED WITH_IPP_A)
1273 status(" Use VA:" HAVE_VA THEN "YES" ELSE NO)
1274 endif(DEFINED WITH_VA)
1276 if(DEFINED WITH_VA_INTEL)
1277 status(" Use Intel VA-API/OpenCL:" HAVE_VA_INTEL THEN "YES (MSDK: ${VA_INTEL_MSDK_ROOT} OpenCL: ${VA_INTEL_IOCL_ROOT})" ELSE NO)
1278 endif(DEFINED WITH_VA_INTEL)
1280 if(DEFINED WITH_LAPACK)
1281 status(" Use Lapack:" HAVE_LAPACK THEN "YES (${LAPACK_LIBRARIES})" ELSE NO)
1282 endif(DEFINED WITH_LAPACK)
1284 status(" Use Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO)
1285 status(" Use Cuda:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING})" ELSE NO)
1286 status(" Use OpenCL:" HAVE_OPENCL THEN YES ELSE NO)
1287 status(" Use OpenVX:" HAVE_OPENVX THEN "YES (${OPENVX_LIBRARIES})" ELSE "NO")
1288 status(" Use custom HAL:" OpenCV_USED_HAL THEN "YES (${OpenCV_USED_HAL})" ELSE "NO")
1292 status(" NVIDIA CUDA")
1294 status(" Use CUFFT:" HAVE_CUFFT THEN YES ELSE NO)
1295 status(" Use CUBLAS:" HAVE_CUBLAS THEN YES ELSE NO)
1296 status(" USE NVCUVID:" HAVE_NVCUVID THEN YES ELSE NO)
1297 status(" NVIDIA GPU arch:" ${OPENCV_CUDA_ARCH_BIN})
1298 status(" NVIDIA PTX archs:" ${OPENCV_CUDA_ARCH_PTX})
1299 status(" Use fast math:" CUDA_FAST_MATH THEN YES ELSE NO)
1304 if(HAVE_OPENCL_STATIC)
1305 set(__opencl_type "<Link with OpenCL library>")
1307 set(__opencl_type "<Dynamic loading of OpenCL library>")
1309 status(" OpenCL:" ${__opencl_type})
1310 if(OPENCL_INCLUDE_DIRS)
1311 status(" Include path:" ${OPENCL_INCLUDE_DIRS})
1313 if(OPENCL_LIBRARIES)
1315 foreach(l ${OPENCL_LIBRARIES})
1317 get_target_property(p ${l} LOCATION)
1318 if(p MATCHES NOTFOUND)
1319 list(APPEND __libs "${l}")
1321 list(APPEND __libs "${p}")
1324 list(APPEND __libs "${l}")
1327 status(" Link libraries:" ${__libs})
1329 status(" Use AMDFFT:" HAVE_CLAMDFFT THEN YES ELSE NO)
1330 status(" Use AMDBLAS:" HAVE_CLAMDBLAS THEN YES ELSE NO)
1333 # ========================== python ==========================
1335 status(" Python 2:")
1336 status(" Interpreter:" PYTHON2INTERP_FOUND THEN "${PYTHON2_EXECUTABLE} (ver ${PYTHON2_VERSION_STRING})" ELSE NO)
1337 if(BUILD_opencv_python2)
1338 if(PYTHON2LIBS_VERSION_STRING)
1339 status(" Libraries:" HAVE_opencv_python2 THEN "${PYTHON2_LIBRARIES} (ver ${PYTHON2LIBS_VERSION_STRING})" ELSE NO)
1341 status(" Libraries:" HAVE_opencv_python2 THEN "${PYTHON2_LIBRARIES}" ELSE NO)
1343 status(" numpy:" PYTHON2_NUMPY_INCLUDE_DIRS THEN "${PYTHON2_NUMPY_INCLUDE_DIRS} (ver ${PYTHON2_NUMPY_VERSION})" ELSE "NO (Python wrappers can not be generated)")
1344 status(" packages path:" PYTHON2_EXECUTABLE THEN "${PYTHON2_PACKAGES_PATH}" ELSE "-")
1348 status(" Python 3:")
1349 status(" Interpreter:" PYTHON3INTERP_FOUND THEN "${PYTHON3_EXECUTABLE} (ver ${PYTHON3_VERSION_STRING})" ELSE NO)
1350 if(BUILD_opencv_python3)
1351 if(PYTHON3LIBS_VERSION_STRING)
1352 status(" Libraries:" HAVE_opencv_python3 THEN "${PYTHON3_LIBRARIES} (ver ${PYTHON3LIBS_VERSION_STRING})" ELSE NO)
1354 status(" Libraries:" HAVE_opencv_python3 THEN "${PYTHON3_LIBRARIES}" ELSE NO)
1356 status(" numpy:" PYTHON3_NUMPY_INCLUDE_DIRS THEN "${PYTHON3_NUMPY_INCLUDE_DIRS} (ver ${PYTHON3_NUMPY_VERSION})" ELSE "NO (Python3 wrappers can not be generated)")
1357 status(" packages path:" PYTHON3_EXECUTABLE THEN "${PYTHON3_PACKAGES_PATH}" ELSE "-")
1361 status(" Python (for build):" PYTHON_DEFAULT_AVAILABLE THEN "${PYTHON_DEFAULT_EXECUTABLE}" ELSE NO)
1363 # ========================== java ==========================
1366 status(" ant:" ANT_EXECUTABLE THEN "${ANT_EXECUTABLE} (ver ${ANT_VERSION})" ELSE NO)
1368 status(" JNI:" JNI_INCLUDE_DIRS THEN "${JNI_INCLUDE_DIRS}" ELSE NO)
1370 status(" Java wrappers:" HAVE_opencv_java THEN YES ELSE NO)
1371 status(" Java tests:" BUILD_TESTS AND opencv_test_java_BINARY_DIR THEN YES ELSE NO)
1373 # ========================= matlab =========================
1377 status(" mex:" MATLAB_MEX_SCRIPT THEN "${MATLAB_MEX_SCRIPT}" ELSE NO)
1378 status(" Compiler/generator:" MEX_WORKS THEN "Working" ELSE "Not working (bindings will not be generated)")
1380 status(" Matlab:" WITH_MATLAB AND NOT MATLAB_FOUND THEN "Matlab not found or implicitly disabled" ELSE NO)
1383 # ========================== documentation ==========================
1386 status(" Documentation:")
1387 status(" Doxygen:" DOXYGEN_FOUND THEN "${DOXYGEN_EXECUTABLE} (ver ${DOXYGEN_VERSION})" ELSE NO)
1390 # ========================== samples and tests ==========================
1392 status(" Tests and samples:")
1393 status(" Tests:" BUILD_TESTS AND HAVE_opencv_ts THEN YES ELSE NO)
1394 status(" Performance tests:" BUILD_PERF_TESTS AND HAVE_opencv_ts THEN YES ELSE NO)
1395 status(" C/C++ Examples:" BUILD_EXAMPLES THEN YES ELSE NO)
1397 # ========================== auxiliary ==========================
1399 status(" Install path:" "${CMAKE_INSTALL_PREFIX}")
1401 status(" cvconfig.h is in:" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}")
1402 status("-----------------------------------------------------------------")
1405 ocv_finalize_status()
1407 # ----------------------------------------------------------------------------
1409 # ----------------------------------------------------------------------------
1411 include(cmake/OpenCVPackaging.cmake)
1413 # This should be the last command
1414 ocv_cmake_dump_vars("" TOFILE "CMakeVars.txt")
1415 ocv_cmake_eval(DEBUG_POST ONCE)