1 # ----------------------------------------------------------------------------
2 # Root CMake file for OpenCV
4 # From the off-tree build directory, invoke:
5 # $ cmake <PATH_TO_OPENCV_ROOT>
7 # ----------------------------------------------------------------------------
11 include(cmake/OpenCVMinDepVersions.cmake)
13 if(CMAKE_GENERATOR MATCHES Xcode AND XCODE_VERSION VERSION_GREATER 4.3)
14 cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR)
15 elseif(CMAKE_SYSTEM_NAME MATCHES WindowsPhone OR CMAKE_SYSTEM_NAME MATCHES WindowsStore)
16 cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
17 #Required to resolve linker error issues due to incompatibility with CMake v3.0+ policies.
18 #CMake fails to find _fseeko() which leads to subsequent linker error.
19 #See details here: http://www.cmake.org/Wiki/CMake/Policies
20 cmake_policy(VERSION 2.8)
22 cmake_minimum_required(VERSION "${MIN_VER_CMAKE}" FATAL_ERROR)
25 # Following block can broke build in case of cross-compilng
26 # but CMAKE_CROSSCOMPILING variable will be set only on project(OpenCV) command
27 # so we will try to detect crosscompiling by presense of CMAKE_TOOLCHAIN_FILE
28 if(NOT CMAKE_TOOLCHAIN_FILE)
29 # it _must_ go before project(OpenCV) in order to work
31 set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory")
33 set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")
35 else(NOT CMAKE_TOOLCHAIN_FILE)
36 #Android: set output folder to ${CMAKE_BINARY_DIR}
37 set( LIBRARY_OUTPUT_PATH_ROOT ${CMAKE_BINARY_DIR} CACHE PATH "root for library output, set this to change where android libs are compiled to" )
39 set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory")
40 endif(NOT CMAKE_TOOLCHAIN_FILE)
42 if(CMAKE_SYSTEM_NAME MATCHES WindowsPhone OR CMAKE_SYSTEM_NAME MATCHES WindowsStore)
44 endif(CMAKE_SYSTEM_NAME MATCHES WindowsPhone OR CMAKE_SYSTEM_NAME MATCHES WindowsStore)
47 add_definitions(-DWINRT -DNO_GETENV)
49 # Making definitions available to other configurations and
50 # to filter dependency restrictions at compile time.
51 if(CMAKE_SYSTEM_NAME MATCHES WindowsPhone)
53 add_definitions(-DWINRT_PHONE)
54 elseif(CMAKE_SYSTEM_NAME MATCHES WindowsStore)
56 add_definitions(-DWINRT_STORE)
59 if(CMAKE_SYSTEM_VERSION MATCHES 10)
61 add_definitions(-DWINRT_10)
62 elseif(CMAKE_SYSTEM_VERSION MATCHES 8.1)
64 add_definitions(-DWINRT_8_1)
65 elseif(CMAKE_SYSTEM_VERSION MATCHES 8.0)
67 add_definitions(-DWINRT_8_0)
72 cmake_policy(SET CMP0020 OLD)
76 cmake_policy(SET CMP0022 OLD)
80 # silence cmake 3.0+ warnings about reading LOCATION attribute
81 cmake_policy(SET CMP0026 OLD)
85 cmake_policy(SET CMP0042 NEW)
88 include(cmake/OpenCVUtils.cmake)
90 # must go before the project command
91 ocv_update(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE)
92 if(DEFINED CMAKE_BUILD_TYPE)
93 set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} )
101 set(CMAKE_USE_RELATIVE_PATHS ON CACHE INTERNAL "" FORCE)
104 ocv_cmake_eval(DEBUG_PRE ONCE)
106 ocv_clear_vars(OpenCVModules_TARGETS)
108 # ----------------------------------------------------------------------------
109 # Break in case of popular CMake configuration mistakes
110 # ----------------------------------------------------------------------------
111 if(NOT CMAKE_SIZEOF_VOID_P GREATER 0)
112 message(FATAL_ERROR "CMake fails to deterimine the bitness of target platform.
113 Please check your CMake and compiler installation. If you are crosscompiling then ensure that your CMake toolchain file correctly sets the compiler details.")
116 # ----------------------------------------------------------------------------
117 # Detect compiler and target platform architecture
118 # ----------------------------------------------------------------------------
119 include(cmake/OpenCVDetectCXXCompiler.cmake)
121 # Add these standard paths to the search paths for FIND_LIBRARY
122 # to find libraries from these locations first
123 if(UNIX AND NOT ANDROID)
124 if(X86_64 OR CMAKE_SIZEOF_VOID_P EQUAL 8)
126 list(APPEND CMAKE_LIBRARY_PATH /lib64)
128 list(APPEND CMAKE_LIBRARY_PATH /lib)
130 if(EXISTS /usr/lib64)
131 list(APPEND CMAKE_LIBRARY_PATH /usr/lib64)
133 list(APPEND CMAKE_LIBRARY_PATH /usr/lib)
135 elseif(X86 OR CMAKE_SIZEOF_VOID_P EQUAL 4)
137 list(APPEND CMAKE_LIBRARY_PATH /lib32)
139 list(APPEND CMAKE_LIBRARY_PATH /lib)
141 if(EXISTS /usr/lib32)
142 list(APPEND CMAKE_LIBRARY_PATH /usr/lib32)
144 list(APPEND CMAKE_LIBRARY_PATH /usr/lib)
149 # Add these standard paths to the search paths for FIND_PATH
150 # to find include files from these locations first
153 list(APPEND CMAKE_INCLUDE_PATH /mingw)
156 list(APPEND CMAKE_INCLUDE_PATH /mingw32)
159 list(APPEND CMAKE_INCLUDE_PATH /mingw64)
163 # ----------------------------------------------------------------------------
164 # OpenCV cmake options
165 # ----------------------------------------------------------------------------
167 OCV_OPTION(OPENCV_ENABLE_NONFREE "Enable non-free algorithms" OFF)
169 # Optional 3rd party components
170 # ===================================================
171 OCV_OPTION(WITH_1394 "Include IEEE1394 support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
172 OCV_OPTION(WITH_AVFOUNDATION "Use AVFoundation for Video I/O (iOS/Mac)" ON IF APPLE)
173 OCV_OPTION(WITH_CARBON "Use Carbon for UI instead of Cocoa" OFF IF APPLE )
174 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"))
175 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) )
176 OCV_OPTION(WITH_CUDA "Include NVidia Cuda Runtime support" ON IF (NOT IOS AND NOT WINRT) )
177 OCV_OPTION(WITH_CUFFT "Include NVidia Cuda Fast Fourier Transform (FFT) library support" ON IF (NOT IOS AND NOT WINRT) )
178 OCV_OPTION(WITH_CUBLAS "Include NVidia Cuda Basic Linear Algebra Subprograms (BLAS) library support" OFF IF (NOT IOS AND NOT WINRT) )
179 OCV_OPTION(WITH_NVCUVID "Include NVidia Video Decoding library support" OFF IF (NOT IOS AND NOT APPLE) )
180 OCV_OPTION(WITH_EIGEN "Include Eigen2/Eigen3 support" ON IF (NOT WINRT) )
181 OCV_OPTION(WITH_VFW "Include Video for Windows support" ON IF WIN32 )
182 OCV_OPTION(WITH_FFMPEG "Include FFMPEG support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
183 OCV_OPTION(WITH_GSTREAMER "Include Gstreamer support" ON IF (NOT ANDROID) )
184 OCV_OPTION(WITH_GSTREAMER_0_10 "Enable Gstreamer 0.10 support (instead of 1.x)" OFF )
185 OCV_OPTION(WITH_GTK "Include GTK support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) )
186 OCV_OPTION(WITH_GTK_2_X "Use GTK version 2" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
187 OCV_OPTION(WITH_IPP "Include Intel IPP support" NOT MINGW IF (X86_64 OR X86) AND NOT WINRT )
188 OCV_OPTION(WITH_JASPER "Include JPEG2K support" ON IF (NOT IOS) )
189 OCV_OPTION(WITH_JPEG "Include JPEG support" ON)
190 OCV_OPTION(WITH_WEBP "Include WebP support" ON IF (NOT IOS AND NOT WINRT) )
191 OCV_OPTION(WITH_OPENEXR "Include ILM support via OpenEXR" ON IF (NOT IOS AND NOT WINRT) )
192 OCV_OPTION(WITH_OPENGL "Include OpenGL support" OFF IF (NOT ANDROID AND NOT WINRT) )
193 OCV_OPTION(WITH_OPENVX "Include OpenVX support" OFF)
194 OCV_OPTION(WITH_OPENNI "Include OpenNI support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
195 OCV_OPTION(WITH_OPENNI2 "Include OpenNI2 support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
196 OCV_OPTION(WITH_PNG "Include PNG support" ON)
197 OCV_OPTION(WITH_GDCM "Include DICOM support" OFF)
198 OCV_OPTION(WITH_PVAPI "Include Prosilica GigE support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
199 OCV_OPTION(WITH_GIGEAPI "Include Smartek GigE support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
200 OCV_OPTION(WITH_ARAVIS "Include Aravis GigE support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT AND NOT WIN32) )
201 OCV_OPTION(WITH_QT "Build with Qt Backend support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
202 OCV_OPTION(WITH_WIN32UI "Build with Win32 UI Backend support" ON IF WIN32 AND NOT WINRT)
203 OCV_OPTION(WITH_QUICKTIME "Use QuickTime for Video I/O" OFF IF APPLE )
204 OCV_OPTION(WITH_QTKIT "Use QTKit Video I/O backend" OFF IF APPLE )
205 OCV_OPTION(WITH_TBB "Include Intel TBB support" OFF IF (NOT IOS AND NOT WINRT) )
206 OCV_OPTION(WITH_OPENMP "Include OpenMP support" OFF)
207 OCV_OPTION(WITH_CSTRIPES "Include C= support" OFF IF (WIN32 AND NOT WINRT) )
208 OCV_OPTION(WITH_PTHREADS_PF "Use pthreads-based parallel_for" ON IF (NOT WIN32 OR MINGW) )
209 OCV_OPTION(WITH_TIFF "Include TIFF support" ON IF (NOT IOS) )
210 OCV_OPTION(WITH_UNICAP "Include Unicap support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
211 OCV_OPTION(WITH_V4L "Include Video 4 Linux support" ON IF (UNIX AND NOT ANDROID) )
212 OCV_OPTION(WITH_LIBV4L "Use libv4l for Video 4 Linux support" OFF IF (UNIX AND NOT ANDROID) )
213 OCV_OPTION(WITH_DSHOW "Build VideoIO with DirectShow support" ON IF (WIN32 AND NOT ARM AND NOT WINRT) )
214 OCV_OPTION(WITH_MSMF "Build VideoIO with Media Foundation support" OFF IF WIN32 )
215 OCV_OPTION(WITH_XIMEA "Include XIMEA cameras support" OFF IF (NOT ANDROID AND NOT WINRT) )
216 OCV_OPTION(WITH_XINE "Include Xine support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
217 OCV_OPTION(WITH_CLP "Include Clp support (EPL)" OFF)
218 OCV_OPTION(WITH_OPENCL "Include OpenCL Runtime support" NOT ANDROID IF (NOT IOS AND NOT WINRT) )
219 OCV_OPTION(WITH_OPENCL_SVM "Include OpenCL Shared Virtual Memory support" OFF ) # experimental
220 OCV_OPTION(WITH_OPENCLAMDFFT "Include AMD OpenCL FFT library support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
221 OCV_OPTION(WITH_OPENCLAMDBLAS "Include AMD OpenCL BLAS library support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
222 OCV_OPTION(WITH_DIRECTX "Include DirectX support" ON IF (WIN32 AND NOT WINRT) )
223 OCV_OPTION(WITH_INTELPERC "Include Intel Perceptual Computing support" OFF IF (WIN32 AND NOT WINRT) )
224 OCV_OPTION(WITH_IPP_A "Include Intel IPP_A support" OFF IF (MSVC OR X86 OR X86_64) )
225 OCV_OPTION(WITH_MATLAB "Include Matlab support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT))
226 OCV_OPTION(WITH_VA "Include VA support" OFF IF (UNIX AND NOT ANDROID) )
227 OCV_OPTION(WITH_VA_INTEL "Include Intel VA-API/OpenCL support" OFF IF (UNIX AND NOT ANDROID) )
228 OCV_OPTION(WITH_GDAL "Include GDAL Support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
229 OCV_OPTION(WITH_GPHOTO2 "Include gPhoto2 library support" ON IF (UNIX AND NOT ANDROID) )
230 OCV_OPTION(WITH_LAPACK "Include Lapack library support" ON IF (NOT ANDROID) )
232 # OpenCV build components
233 # ===================================================
234 OCV_OPTION(BUILD_SHARED_LIBS "Build shared libraries (.dll/.so) instead of static ones (.lib/.a)" NOT (ANDROID OR APPLE_FRAMEWORK) )
235 OCV_OPTION(BUILD_opencv_apps "Build utility applications (used for example to train classifiers)" (NOT ANDROID AND NOT WINRT) IF (NOT APPLE_FRAMEWORK) )
236 OCV_OPTION(BUILD_ANDROID_EXAMPLES "Build examples for Android platform" ON IF ANDROID )
237 OCV_OPTION(BUILD_DOCS "Create build rules for OpenCV Documentation" ON IF (NOT WINRT OR APPLE_FRAMEWORK))
238 OCV_OPTION(BUILD_EXAMPLES "Build all examples" OFF )
239 OCV_OPTION(BUILD_PACKAGE "Enables 'make package_source' command" ON IF NOT WINRT)
240 OCV_OPTION(BUILD_PERF_TESTS "Build performance tests" ON IF (NOT APPLE_FRAMEWORK) )
241 OCV_OPTION(BUILD_TESTS "Build accuracy & regression tests" ON IF (NOT APPLE_FRAMEWORK) )
242 OCV_OPTION(BUILD_WITH_DEBUG_INFO "Include debug info into debug libs (not MSCV only)" ON )
243 OCV_OPTION(BUILD_WITH_STATIC_CRT "Enables use of staticaly linked CRT for staticaly linked OpenCV" ON IF MSVC )
244 OCV_OPTION(BUILD_WITH_DYNAMIC_IPP "Enables dynamic linking of IPP (only for standalone IPP)" OFF )
245 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 )
246 OCV_OPTION(BUILD_ANDROID_SERVICE "Build OpenCV Manager for Google Play" OFF IF ANDROID )
247 OCV_OPTION(BUILD_CUDA_STUBS "Build CUDA modules stubs when no CUDA SDK" OFF IF (NOT APPLE_FRAMEWORK) )
250 OCV_OPTION(BUILD_ZLIB "Build zlib from source" WIN32 OR APPLE )
251 OCV_OPTION(BUILD_TIFF "Build libtiff from source" WIN32 OR ANDROID OR APPLE )
252 OCV_OPTION(BUILD_JASPER "Build libjasper from source" WIN32 OR ANDROID OR APPLE )
253 OCV_OPTION(BUILD_JPEG "Build libjpeg from source" WIN32 OR ANDROID OR APPLE )
254 OCV_OPTION(BUILD_PNG "Build libpng from source" WIN32 OR ANDROID OR APPLE )
255 OCV_OPTION(BUILD_OPENEXR "Build openexr from source" (WIN32 OR ANDROID OR APPLE) AND NOT WINRT)
256 OCV_OPTION(BUILD_TBB "Download and build TBB from source" ANDROID )
258 # OpenCV installation options
259 # ===================================================
260 OCV_OPTION(INSTALL_CREATE_DISTRIB "Change install rules to build the distribution package" OFF )
261 OCV_OPTION(INSTALL_C_EXAMPLES "Install C examples" OFF )
262 OCV_OPTION(INSTALL_PYTHON_EXAMPLES "Install Python examples" OFF )
263 OCV_OPTION(INSTALL_ANDROID_EXAMPLES "Install Android examples" OFF IF ANDROID )
264 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) )
265 OCV_OPTION(INSTALL_TESTS "Install accuracy and performance test binaries and test data" OFF)
267 # OpenCV build options
268 # ===================================================
269 OCV_OPTION(ENABLE_CCACHE "Use ccache" (UNIX AND NOT IOS AND (CMAKE_GENERATOR MATCHES "Makefile" OR CMAKE_GENERATOR MATCHES "Ninja")) )
270 OCV_OPTION(ENABLE_PRECOMPILED_HEADERS "Use precompiled headers" ON IF (NOT IOS AND NOT CMAKE_CROSSCOMPILING) )
271 OCV_OPTION(ENABLE_SOLUTION_FOLDERS "Solution folder in Visual Studio or in other IDEs" (MSVC_IDE OR CMAKE_GENERATOR MATCHES Xcode) )
272 OCV_OPTION(ENABLE_PROFILING "Enable profiling in the GCC compiler (Add flags: -g -pg)" OFF IF CMAKE_COMPILER_IS_GNUCXX )
273 OCV_OPTION(ENABLE_COVERAGE "Enable coverage collection with GCov" OFF IF CMAKE_COMPILER_IS_GNUCXX )
274 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) )
275 OCV_OPTION(ENABLE_POWERPC "Enable PowerPC for GCC" ON IF (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_PROCESSOR MATCHES powerpc.*) )
276 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)) )
277 OCV_OPTION(ENABLE_SSE "Enable SSE instructions" ON IF ((MSVC OR CMAKE_COMPILER_IS_GNUCXX) AND (X86 OR X86_64)) )
278 OCV_OPTION(ENABLE_SSE2 "Enable SSE2 instructions" ON IF ((MSVC OR CMAKE_COMPILER_IS_GNUCXX) AND (X86 OR X86_64)) )
279 OCV_OPTION(ENABLE_SSE3 "Enable SSE3 instructions" ON IF ((MSVC OR CMAKE_COMPILER_IS_GNUCXX OR CV_ICC) AND (X86 OR X86_64)) )
280 OCV_OPTION(ENABLE_SSSE3 "Enable SSSE3 instructions" OFF IF ((MSVC OR CMAKE_COMPILER_IS_GNUCXX) AND (X86 OR X86_64)) )
281 OCV_OPTION(ENABLE_SSE41 "Enable SSE4.1 instructions" OFF IF ((MSVC OR CMAKE_COMPILER_IS_GNUCXX OR CV_ICC) AND (X86 OR X86_64)) )
282 OCV_OPTION(ENABLE_SSE42 "Enable SSE4.2 instructions" OFF IF ((MSVC OR CMAKE_COMPILER_IS_GNUCXX) AND (X86 OR X86_64)) )
283 OCV_OPTION(ENABLE_POPCNT "Enable POPCNT instructions" OFF IF ((MSVC OR CMAKE_COMPILER_IS_GNUCXX) AND (X86 OR X86_64)) )
284 OCV_OPTION(ENABLE_AVX "Enable AVX instructions" OFF IF ((MSVC OR CMAKE_COMPILER_IS_GNUCXX) AND (X86 OR X86_64)) )
285 OCV_OPTION(ENABLE_AVX2 "Enable AVX2 instructions" OFF IF ((MSVC OR CMAKE_COMPILER_IS_GNUCXX) AND (X86 OR X86_64)) )
286 OCV_OPTION(ENABLE_FMA3 "Enable FMA3 instructions" OFF IF ((MSVC OR CMAKE_COMPILER_IS_GNUCXX) AND (X86 OR X86_64)) )
287 OCV_OPTION(ENABLE_NEON "Enable NEON instructions" "${NEON}" IF CMAKE_COMPILER_IS_GNUCXX AND (ARM OR AARCH64 OR IOS) )
288 OCV_OPTION(ENABLE_VFPV3 "Enable VFPv3-D32 instructions" OFF IF CMAKE_COMPILER_IS_GNUCXX AND (ARM OR AARCH64 OR IOS) )
289 OCV_OPTION(ENABLE_NOISY_WARNINGS "Show all warnings even if they are too noisy" OFF )
290 OCV_OPTION(OPENCV_WARNINGS_ARE_ERRORS "Treat warnings as errors" OFF )
291 OCV_OPTION(ANDROID_EXAMPLES_WITH_LIBS "Build binaries of Android examples with native libraries" OFF IF ANDROID )
292 OCV_OPTION(ENABLE_IMPL_COLLECTION "Collect implementation data on function call" OFF )
293 OCV_OPTION(ENABLE_INSTRUMENTATION "Instrument functions to collect calls trace and performance" OFF )
294 OCV_OPTION(GENERATE_ABI_DESCRIPTOR "Generate XML file for abi_compliance_checker tool" OFF IF UNIX)
296 OCV_OPTION(DOWNLOAD_EXTERNAL_TEST_DATA "Download external test data (Python executable and OPENCV_TEST_DATA_PATH environment variable may be required)" OFF )
299 if(ENABLE_IMPL_COLLECTION)
300 add_definitions(-DCV_COLLECT_IMPL_DATA)
304 # ----------------------------------------------------------------------------
305 # Get actual OpenCV version number from sources
306 # ----------------------------------------------------------------------------
307 include(cmake/OpenCVVersion.cmake)
310 # ----------------------------------------------------------------------------
311 # Build & install layouts
312 # ----------------------------------------------------------------------------
314 # Save libs and executables in the same place
315 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin" CACHE PATH "Output directory for applications")
318 if(ANDROID_ABI MATCHES "NEON")
321 if(ANDROID_ABI MATCHES "VFPV3")
327 ocv_update(OPENCV_DOC_INSTALL_PATH doc)
329 ocv_update(OPENCV_DOC_INSTALL_PATH share/OpenCV/doc)
332 if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
333 if(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH)
334 ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "${OpenCV_ARCH}/${OpenCV_RUNTIME}/")
336 message(STATUS "Can't detect runtime and/or arch")
337 ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "")
340 ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "sdk/native/")
342 ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "")
346 ocv_update(OPENCV_SAMPLES_BIN_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}samples/${ANDROID_NDK_ABI_NAME}")
348 ocv_update(OPENCV_SAMPLES_BIN_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}samples")
352 ocv_update(OPENCV_BIN_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}bin/${ANDROID_NDK_ABI_NAME}")
354 ocv_update(OPENCV_BIN_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}bin")
357 if(NOT OPENCV_TEST_INSTALL_PATH)
358 ocv_update(OPENCV_TEST_INSTALL_PATH "${OPENCV_BIN_INSTALL_PATH}")
361 if (OPENCV_TEST_DATA_PATH)
362 get_filename_component(OPENCV_TEST_DATA_PATH ${OPENCV_TEST_DATA_PATH} ABSOLUTE)
365 if(OPENCV_TEST_DATA_PATH AND NOT OPENCV_TEST_DATA_INSTALL_PATH)
367 ocv_update(OPENCV_TEST_DATA_INSTALL_PATH "sdk/etc/testdata")
369 ocv_update(OPENCV_TEST_DATA_INSTALL_PATH "testdata")
371 ocv_update(OPENCV_TEST_DATA_INSTALL_PATH "share/OpenCV/testdata")
376 set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib/${ANDROID_NDK_ABI_NAME}")
377 ocv_update(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib/${ANDROID_NDK_ABI_NAME}")
378 ocv_update(OPENCV_LIB_INSTALL_PATH sdk/native/libs/${ANDROID_NDK_ABI_NAME})
379 ocv_update(OPENCV_3P_LIB_INSTALL_PATH sdk/native/3rdparty/libs/${ANDROID_NDK_ABI_NAME})
380 ocv_update(OPENCV_CONFIG_INSTALL_PATH sdk/native/jni)
381 ocv_update(OPENCV_INCLUDE_INSTALL_PATH sdk/native/jni/include)
382 ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH samples/native)
383 ocv_update(OPENCV_OTHER_INSTALL_PATH sdk/etc)
385 set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib")
386 ocv_update(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}")
388 if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
390 ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}")
392 ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}")
394 ocv_update(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}")
395 ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH samples/native)
396 ocv_update(OPENCV_JAR_INSTALL_PATH java)
397 ocv_update(OPENCV_OTHER_INSTALL_PATH etc)
398 ocv_update(OPENCV_CONFIG_INSTALL_PATH ".")
400 ocv_update(OPENCV_LIB_INSTALL_PATH lib${LIB_SUFFIX})
401 ocv_update(OPENCV_3P_LIB_INSTALL_PATH share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH})
402 ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH share/OpenCV/samples)
403 ocv_update(OPENCV_JAR_INSTALL_PATH share/OpenCV/java)
404 ocv_update(OPENCV_OTHER_INSTALL_PATH share/OpenCV)
406 if(NOT DEFINED OPENCV_CONFIG_INSTALL_PATH)
407 math(EXPR SIZEOF_VOID_P_BITS "8 * ${CMAKE_SIZEOF_VOID_P}")
408 if(LIB_SUFFIX AND NOT SIZEOF_VOID_P_BITS EQUAL LIB_SUFFIX)
409 ocv_update(OPENCV_CONFIG_INSTALL_PATH lib${LIB_SUFFIX}/cmake/opencv)
411 ocv_update(OPENCV_CONFIG_INSTALL_PATH share/OpenCV)
415 ocv_update(OPENCV_INCLUDE_INSTALL_PATH "include")
418 ocv_update(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OPENCV_LIB_INSTALL_PATH}")
419 set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
421 if(INSTALL_TO_MANGLED_PATHS)
422 set(OPENCV_INCLUDE_INSTALL_PATH ${OPENCV_INCLUDE_INSTALL_PATH}/opencv-${OPENCV_VERSION})
424 OPENCV_3P_LIB_INSTALL_PATH
425 OPENCV_SAMPLES_SRC_INSTALL_PATH
426 OPENCV_CONFIG_INSTALL_PATH
427 OPENCV_DOC_INSTALL_PATH
428 OPENCV_JAR_INSTALL_PATH
429 OPENCV_TEST_DATA_INSTALL_PATH
430 OPENCV_OTHER_INSTALL_PATH
432 string(REPLACE "OpenCV" "OpenCV-${OPENCV_VERSION}" ${v} "${${v}}")
433 string(REPLACE "opencv" "opencv-${OPENCV_VERSION}" ${v} "${${v}}")
440 set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")
441 set(OPENCV_DEBUG_POSTFIX d)
444 set(OPENCV_DLLVERSION "")
445 set(OPENCV_DEBUG_POSTFIX "")
448 if(DEFINED CMAKE_DEBUG_POSTFIX)
449 set(OPENCV_DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}")
452 if((INSTALL_CREATE_DISTRIB AND BUILD_SHARED_LIBS AND NOT DEFINED BUILD_opencv_world) OR APPLE_FRAMEWORK)
453 set(BUILD_opencv_world ON CACHE INTERNAL "")
456 # ----------------------------------------------------------------------------
457 # Path for build/platform -specific headers
458 # ----------------------------------------------------------------------------
459 ocv_update(OPENCV_CONFIG_FILE_INCLUDE_DIR "${CMAKE_BINARY_DIR}/" CACHE PATH "Where to create the platform-dependant cvconfig.h")
460 ocv_include_directories(${OPENCV_CONFIG_FILE_INCLUDE_DIR})
462 # ----------------------------------------------------------------------------
463 # Path for additional modules
464 # ----------------------------------------------------------------------------
465 set(OPENCV_EXTRA_MODULES_PATH "" CACHE PATH "Where to look for additional OpenCV modules")
467 # ----------------------------------------------------------------------------
468 # Autodetect if we are in a GIT repository
469 # ----------------------------------------------------------------------------
470 find_host_package(Git QUIET)
472 if(NOT DEFINED OPENCV_VCSVERSION AND GIT_FOUND)
473 execute_process(COMMAND "${GIT_EXECUTABLE}" describe --tags --always --dirty --match "[0-9].[0-9].[0-9]*"
474 WORKING_DIRECTORY "${OpenCV_SOURCE_DIR}"
475 OUTPUT_VARIABLE OPENCV_VCSVERSION
476 RESULT_VARIABLE GIT_RESULT
478 OUTPUT_STRIP_TRAILING_WHITESPACE
480 if(NOT GIT_RESULT EQUAL 0)
481 set(OPENCV_VCSVERSION "unknown")
483 elseif(NOT DEFINED OPENCV_VCSVERSION)
485 set(OPENCV_VCSVERSION "unknown")
489 # ----------------------------------------------------------------------------
490 # OpenCV compiler and linker options
491 # ----------------------------------------------------------------------------
492 # In case of Makefiles if the user does not setup CMAKE_BUILD_TYPE, assume it's Release:
493 if(CMAKE_GENERATOR MATCHES "Makefiles|Ninja" AND "${CMAKE_BUILD_TYPE}" STREQUAL "")
494 set(CMAKE_BUILD_TYPE Release)
497 include(cmake/OpenCVCompilerOptions.cmake)
500 # ----------------------------------------------------------------------------
501 # Use statically or dynamically linked CRT?
503 # ----------------------------------------------------------------------------
505 include(cmake/OpenCVCRTLinkage.cmake)
508 if(WIN32 AND NOT MINGW)
509 add_definitions(-D_VARIADIC_MAX=10)
510 endif(WIN32 AND NOT MINGW)
513 # ----------------------------------------------------------------------------
514 # CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC..
515 # ----------------------------------------------------------------------------
517 find_package(PkgConfig QUIET)
518 include(CheckFunctionExists)
519 include(CheckIncludeFile)
522 CHECK_INCLUDE_FILE(pthread.h HAVE_LIBPTHREAD)
524 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} dl m log)
525 elseif(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD|NetBSD|DragonFly|OpenBSD")
526 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} m pthread)
528 # no need to link to system libs with emscripten
530 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} dl m pthread rt)
533 set(HAVE_LIBPTHREAD YES)
537 include(cmake/OpenCVPCHSupport.cmake)
538 include(cmake/OpenCVModule.cmake)
540 # ----------------------------------------------------------------------------
541 # Detect endianness of build platform
542 # ----------------------------------------------------------------------------
545 # test_big_endian needs try_compile, which doesn't work for iOS
546 # http://public.kitware.com/Bug/view.php?id=12288
547 set(WORDS_BIGENDIAN 0)
549 include(TestBigEndian)
550 test_big_endian(WORDS_BIGENDIAN)
553 # ----------------------------------------------------------------------------
554 # Detect 3rd-party libraries
555 # ----------------------------------------------------------------------------
557 include(cmake/OpenCVFindLibsGrfmt.cmake)
558 include(cmake/OpenCVFindLibsGUI.cmake)
559 include(cmake/OpenCVFindLibsVideo.cmake)
560 include(cmake/OpenCVFindLibsPerf.cmake)
562 # ----------------------------------------------------------------------------
563 # Detect other 3rd-party libraries/tools
564 # ----------------------------------------------------------------------------
566 # --- Doxygen for documentation ---
568 find_package(Doxygen)
570 unset(DOXYGEN_FOUND CACHE)
573 # --- Python Support ---
574 include(cmake/OpenCVDetectPython.cmake)
576 # --- Java Support ---
577 include(cmake/OpenCVDetectApacheAnt.cmake)
579 include(cmake/OpenCVDetectAndroidSDK.cmake)
581 if(NOT ANDROID_TOOLS_Pkg_Revision GREATER 13)
582 message(WARNING "OpenCV requires Android SDK tools revision 14 or newer. Otherwise tests and samples will no be compiled.")
588 if(ANDROID AND ANDROID_EXECUTABLE AND ANT_EXECUTABLE AND (ANT_VERSION VERSION_GREATER 1.7) AND (ANDROID_TOOLS_Pkg_Revision GREATER 13))
589 SET(CAN_BUILD_ANDROID_PROJECTS TRUE)
591 SET(CAN_BUILD_ANDROID_PROJECTS FALSE)
596 include(cmake/OpenCVDetectOpenCL.cmake)
601 include(cmake/OpenCVDetectDirectX.cmake)
604 # --- Matlab/Octave ---
606 include(cmake/OpenCVFindMatlab.cmake)
609 include(cmake/OpenCVDetectVTK.cmake)
612 include(cmake/FindOpenVX.cmake)
615 # ----------------------------------------------------------------------------
617 # ----------------------------------------------------------------------------
618 set(_hal_includes "")
619 macro(ocv_hal_register HAL_LIBRARIES_VAR HAL_HEADERS_VAR HAL_INCLUDE_DIRS_VAR)
621 foreach (l ${${HAL_LIBRARIES_VAR}})
623 get_filename_component(l "${l}" ABSOLUTE)
625 list(APPEND OPENCV_HAL_LINKER_LIBS ${l})
628 foreach (h ${${HAL_HEADERS_VAR}})
629 set(_hal_includes "${_hal_includes}\n#include \"${h}\"")
632 ocv_include_directories(${${HAL_INCLUDE_DIRS_VAR}})
635 if(NOT DEFINED OpenCV_HAL)
636 set(OpenCV_HAL "OpenCV_HAL")
640 if(NOT ";${OpenCV_HAL};" MATCHES ";openvx;")
641 set(OpenCV_HAL "openvx;${OpenCV_HAL}")
646 ocv_debug_message(STATUS "Enable carotene acceleration")
647 if(NOT ";${OpenCV_HAL};" MATCHES ";carotene;")
648 set(OpenCV_HAL "carotene;${OpenCV_HAL}")
652 foreach(hal ${OpenCV_HAL})
653 if(hal STREQUAL "carotene")
654 add_subdirectory(3rdparty/carotene/hal)
655 ocv_hal_register(CAROTENE_HAL_LIBRARIES CAROTENE_HAL_HEADERS CAROTENE_HAL_INCLUDE_DIRS)
656 list(APPEND OpenCV_USED_HAL "carotene (ver ${CAROTENE_HAL_VERSION})")
657 elseif(hal STREQUAL "openvx")
658 add_subdirectory(3rdparty/openvx)
659 ocv_hal_register(OPENVX_HAL_LIBRARIES OPENVX_HAL_HEADERS OPENVX_HAL_INCLUDE_DIRS)
660 list(APPEND OpenCV_USED_HAL "openvx (ver ${OPENVX_HAL_VERSION})")
662 ocv_debug_message(STATUS "OpenCV HAL: ${hal} ...")
663 ocv_clear_vars(OpenCV_HAL_LIBRARIES OpenCV_HAL_HEADERS OpenCV_HAL_INCLUDE_DIRS)
664 find_package(${hal} NO_MODULE QUIET)
666 ocv_hal_register(OpenCV_HAL_LIBRARIES OpenCV_HAL_HEADERS OpenCV_HAL_INCLUDE_DIRS)
667 list(APPEND OpenCV_USED_HAL "${hal} (ver ${${hal}_VERSION})")
671 configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/custom_hal.hpp.in" "${CMAKE_BINARY_DIR}/custom_hal.hpp" @ONLY)
675 # ----------------------------------------------------------------------------
676 # Add CUDA libraries (needed for apps/tools, samples)
677 # ----------------------------------------------------------------------------
679 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY})
681 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CUDA_cublas_LIBRARY})
684 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CUDA_cufft_LIBRARY})
686 foreach(p ${CUDA_LIBS_PATH})
687 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CMAKE_LIBRARY_PATH_FLAG}${p})
690 # ----------------------------------------------------------------------------
692 # ----------------------------------------------------------------------------
693 if(ENABLE_SOLUTION_FOLDERS)
694 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
695 set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMakeTargets")
698 # Extra OpenCV targets: uninstall, package_source, perf, etc.
699 include(cmake/OpenCVExtraTargets.cmake)
702 # ----------------------------------------------------------------------------
703 # Process subdirectories
704 # ----------------------------------------------------------------------------
706 # opencv.hpp and legacy headers
707 add_subdirectory(include)
710 add_subdirectory(modules)
712 # Generate targets for documentation
713 add_subdirectory(doc)
715 # various data that is used by cv libraries and/or demo applications.
716 add_subdirectory(data)
719 if(BUILD_opencv_apps)
720 add_subdirectory(apps)
724 if(BUILD_EXAMPLES OR BUILD_ANDROID_EXAMPLES OR INSTALL_PYTHON_EXAMPLES)
725 add_subdirectory(samples)
729 add_subdirectory(platforms/android/service)
732 # ----------------------------------------------------------------------------
733 # Finalization: generate configuration-based files
734 # ----------------------------------------------------------------------------
736 # Generate platform-dependent and configuration-dependent headers
737 include(cmake/OpenCVGenHeaders.cmake)
739 # Generate opencv.pc for pkg-config command
740 include(cmake/OpenCVGenPkgconfig.cmake)
742 # Generate OpenCV.mk for ndk-build (Android build tool)
743 include(cmake/OpenCVGenAndroidMK.cmake)
745 # Generate OpenCVConfig.cmake and OpenCVConfig-version.cmake for cmake projects
746 include(cmake/OpenCVGenConfig.cmake)
748 # Generate Info.plist for the IOS framework
750 include(cmake/OpenCVGenInfoPlist.cmake)
753 # Generate ABI descriptor
754 include(cmake/OpenCVGenABI.cmake)
756 # Generate environment setup file
757 if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH)
759 get_filename_component(TEST_PATH ${OPENCV_TEST_INSTALL_PATH} DIRECTORY)
760 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/opencv_run_all_tests_android.sh.in"
761 "${CMAKE_BINARY_DIR}/unix-install/opencv_run_all_tests.sh" @ONLY)
762 install(PROGRAMS "${CMAKE_BINARY_DIR}/unix-install/opencv_run_all_tests.sh"
763 DESTINATION ./ COMPONENT tests)
765 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/opencv_run_all_tests_windows.cmd.in"
766 "${CMAKE_BINARY_DIR}/win-install/opencv_run_all_tests.cmd" @ONLY)
767 install(PROGRAMS "${CMAKE_BINARY_DIR}/win-install/opencv_run_all_tests.cmd"
768 DESTINATION ${OPENCV_TEST_INSTALL_PATH} COMPONENT tests)
770 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/opencv_run_all_tests_unix.sh.in"
771 "${CMAKE_BINARY_DIR}/unix-install/opencv_run_all_tests.sh" @ONLY)
772 install(PROGRAMS "${CMAKE_BINARY_DIR}/unix-install/opencv_run_all_tests.sh"
773 DESTINATION ${OPENCV_TEST_INSTALL_PATH} COMPONENT tests)
777 if(NOT OPENCV_README_FILE)
779 set(OPENCV_README_FILE ${CMAKE_CURRENT_SOURCE_DIR}/platforms/android/README.android)
783 if(NOT OPENCV_LICENSE_FILE)
784 set(OPENCV_LICENSE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
787 # for UNIX it does not make sense as LICENSE and readme will be part of the package automatically
788 if(ANDROID OR NOT UNIX)
789 install(FILES ${OPENCV_LICENSE_FILE}
790 PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
791 DESTINATION ./ COMPONENT libs)
792 if(OPENCV_README_FILE)
793 install(FILES ${OPENCV_README_FILE}
794 PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
795 DESTINATION ./ COMPONENT libs)
799 # ----------------------------------------------------------------------------
801 # ----------------------------------------------------------------------------
803 status("General configuration for OpenCV ${OPENCV_VERSION} =====================================")
804 if(OPENCV_VCSVERSION)
805 status(" Version control:" ${OPENCV_VCSVERSION})
807 if(OPENCV_EXTRA_MODULES_PATH AND NOT BUILD_INFO_SKIP_EXTRA_MODULES)
808 set(__dump_extra_header OFF)
809 foreach(p ${OPENCV_EXTRA_MODULES_PATH})
811 if(NOT __dump_extra_header)
812 set(__dump_extra_header ON)
814 status(" Extra modules:")
818 set(EXTRA_MODULES_VCSVERSION "unknown")
820 execute_process(COMMAND "${GIT_EXECUTABLE}" describe --tags --always --dirty --match "[0-9].[0-9].[0-9]*"
821 WORKING_DIRECTORY "${p}"
822 OUTPUT_VARIABLE EXTRA_MODULES_VCSVERSION
823 RESULT_VARIABLE GIT_RESULT
825 OUTPUT_STRIP_TRAILING_WHITESPACE
827 if(NOT GIT_RESULT EQUAL 0)
828 set(EXTRA_MODULES_VCSVERSION "unknown")
831 status(" Location (extra):" ${p})
832 status(" Version control (extra):" ${EXTRA_MODULES_VCSVERSION})
835 unset(__dump_extra_header)
838 # ========================== build platform ==========================
841 if(NOT CMAKE_VERSION VERSION_LESS 2.8.11 AND NOT BUILD_INFO_SKIP_TIMESTAMP)
842 string(TIMESTAMP TIMESTAMP "" UTC)
844 status(" Timestamp:" ${TIMESTAMP})
847 status(" Host:" ${CMAKE_HOST_SYSTEM_NAME} ${CMAKE_HOST_SYSTEM_VERSION} ${CMAKE_HOST_SYSTEM_PROCESSOR})
848 if(CMAKE_CROSSCOMPILING)
849 status(" Target:" ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR})
851 status(" CMake:" ${CMAKE_VERSION})
852 status(" CMake generator:" ${CMAKE_GENERATOR})
853 status(" CMake build tool:" ${CMAKE_BUILD_TOOL})
855 status(" MSVC:" ${MSVC_VERSION})
857 if(CMAKE_GENERATOR MATCHES Xcode)
858 status(" Xcode:" ${XCODE_VERSION})
860 if(NOT CMAKE_GENERATOR MATCHES "Xcode|Visual Studio")
861 status(" Configuration:" ${CMAKE_BUILD_TYPE})
864 # ========================== C/C++ options ==========================
865 if(CMAKE_CXX_COMPILER_VERSION)
866 set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} (ver ${CMAKE_CXX_COMPILER_VERSION})")
867 elseif(CMAKE_COMPILER_IS_CLANGCXX)
868 set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} (ver ${CMAKE_CLANG_REGEX_VERSION})")
869 elseif(CMAKE_COMPILER_IS_GNUCXX)
870 set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} (ver ${CMAKE_GCC_REGEX_VERSION})")
872 set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1}")
874 string(STRIP "${OPENCV_COMPILER_STR}" OPENCV_COMPILER_STR)
878 status(" Built as dynamic libs?:" BUILD_SHARED_LIBS THEN YES ELSE NO)
879 status(" C++ Compiler:" ${OPENCV_COMPILER_STR})
880 status(" C++ flags (Release):" ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE})
881 status(" C++ flags (Debug):" ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG})
882 status(" C Compiler:" ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1})
883 status(" C flags (Release):" ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_RELEASE})
884 status(" C flags (Debug):" ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_DEBUG})
886 status(" Linker flags (Release):" ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_RELEASE})
887 status(" Linker flags (Debug):" ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_DEBUG})
889 status(" Linker flags (Release):" ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_RELEASE})
890 status(" Linker flags (Debug):" ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_DEBUG})
892 status(" ccache:" CMAKE_COMPILER_IS_CCACHE THEN YES ELSE NO)
893 status(" Precompiled headers:" PCHSupport_FOUND AND ENABLE_PRECOMPILED_HEADERS THEN YES ELSE NO)
895 # ========================== Dependencies ============================
896 ocv_get_all_libs(deps_modules deps_extra deps_3rdparty)
897 status(" Extra dependencies:" ${deps_extra})
898 status(" 3rdparty dependencies:" ${deps_3rdparty})
900 # ========================== OpenCV modules ==========================
902 status(" OpenCV modules:")
903 string(REPLACE "opencv_" "" OPENCV_MODULES_BUILD_ST "${OPENCV_MODULES_BUILD}")
904 string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_USER_ST "${OPENCV_MODULES_DISABLED_USER}")
905 string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_FORCE_ST "${OPENCV_MODULES_DISABLED_FORCE}")
906 set(OPENCV_MODULES_DISABLED_AUTO_ST "")
907 foreach(m ${OPENCV_MODULES_DISABLED_AUTO})
909 foreach(d ${OPENCV_MODULE_${m}_DEPS})
910 if(d MATCHES "^opencv_" AND NOT HAVE_${d})
911 list(APPEND __mdeps ${d})
915 list(APPEND OPENCV_MODULES_DISABLED_AUTO_ST "${m}(deps: ${__mdeps})")
917 list(APPEND OPENCV_MODULES_DISABLED_AUTO_ST "${m}")
920 string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_AUTO_ST "${OPENCV_MODULES_DISABLED_AUTO_ST}")
922 status(" To be built:" OPENCV_MODULES_BUILD THEN ${OPENCV_MODULES_BUILD_ST} ELSE "-")
923 status(" Disabled:" OPENCV_MODULES_DISABLED_USER THEN ${OPENCV_MODULES_DISABLED_USER_ST} ELSE "-")
924 status(" Disabled by dependency:" OPENCV_MODULES_DISABLED_AUTO THEN ${OPENCV_MODULES_DISABLED_AUTO_ST} ELSE "-")
925 status(" Unavailable:" OPENCV_MODULES_DISABLED_FORCE THEN ${OPENCV_MODULES_DISABLED_FORCE_ST} ELSE "-")
927 if(OPENCV_ENABLE_NONFREE)
929 status(" Non-free algorithms are enabled")
932 # ========================== Android details ==========================
936 status(" Android ABI:" ${ANDROID_ABI})
937 status(" STL type:" ${ANDROID_STL})
938 status(" Native API level:" android-${ANDROID_NATIVE_API_LEVEL})
939 android_get_compatible_target(android_sdk_target_status ${ANDROID_NATIVE_API_LEVEL} ${ANDROID_SDK_TARGET} 11)
940 status(" SDK target:" "${android_sdk_target_status}")
941 if(BUILD_WITH_ANDROID_NDK)
942 status(" Android NDK:" "${ANDROID_NDK} (toolchain: ${ANDROID_TOOLCHAIN_NAME})")
943 elseif(BUILD_WITH_STANDALONE_TOOLCHAIN)
944 status(" Android toolchain:" "${ANDROID_STANDALONE_TOOLCHAIN}")
946 status(" android tool:" ANDROID_EXECUTABLE THEN "${ANDROID_EXECUTABLE} (${ANDROID_TOOLS_Pkg_Desc})" ELSE NO)
947 status(" Google Play manager:" BUILD_ANDROID_SERVICE THEN YES ELSE NO)
948 status(" Android examples:" BUILD_ANDROID_EXAMPLES AND CAN_BUILD_ANDROID_PROJECTS THEN YES ELSE NO)
951 # ================== Windows RT features ==================
954 status(" Windows RT support:" WINRT THEN YES ELSE NO)
956 status(" Building for Microsoft platform: " ${CMAKE_SYSTEM_NAME})
957 status(" Building for architectures: " ${CMAKE_VS_EFFECTIVE_PLATFORMS})
958 status(" Building for version: " ${CMAKE_SYSTEM_VERSION})
959 if (DEFINED ENABLE_WINRT_MODE_NATIVE)
960 status(" Building for C++ without CX extensions")
965 # ========================== GUI ==========================
970 status(" QT 5.x:" HAVE_QT THEN "YES (ver ${Qt5Core_VERSION_STRING})" ELSE NO)
971 status(" QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${Qt5OpenGL_LIBRARIES} ${Qt5OpenGL_VERSION_STRING})" ELSE NO)
973 status(" QT 4.x:" HAVE_QT THEN "YES (ver ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH} ${QT_EDITION})" ELSE NO)
974 status(" QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${QT_QTOPENGL_LIBRARY})" ELSE NO)
979 if(DEFINED WITH_WIN32UI)
980 status(" Win32 UI:" HAVE_WIN32UI THEN YES ELSE NO)
984 status(" Carbon:" YES)
986 status(" Cocoa:" YES)
990 status(" GTK+ 3.x:" HAVE_GTK THEN "YES (ver ${ALIASOF_gtk+-3.0_VERSION})" ELSE NO)
992 status(" GTK+ 2.x:" HAVE_GTK THEN "YES (ver ${ALIASOF_gtk+-2.0_VERSION})" ELSE NO)
996 status(" GThread :" HAVE_GTHREAD THEN "YES (ver ${ALIASOF_gthread-2.0_VERSION})" ELSE NO)
997 status(" GtkGlExt:" HAVE_GTKGLEXT THEN "YES (ver ${ALIASOF_gtkglext-1.0_VERSION})" ELSE NO)
1002 status(" OpenGL support:" HAVE_OPENGL THEN "YES (${OPENGL_LIBRARIES})" ELSE NO)
1003 status(" VTK support:" HAVE_VTK THEN "YES (ver ${VTK_VERSION})" ELSE NO)
1005 # ========================== MEDIA IO ==========================
1007 status(" Media I/O: ")
1008 status(" ZLib:" BUILD_ZLIB THEN "build (ver ${ZLIB_VERSION_STRING})" ELSE "${ZLIB_LIBRARIES} (ver ${ZLIB_VERSION_STRING})")
1011 status(" JPEG:" JPEG_FOUND THEN "${JPEG_LIBRARY} (ver ${JPEG_LIB_VERSION})" ELSE "build (ver ${JPEG_LIB_VERSION})")
1013 status(" JPEG:" "NO")
1017 status(" WEBP:" WEBP_FOUND THEN "${WEBP_LIBRARY} (ver ${WEBP_VERSION})" ELSE "build (ver ${WEBP_VERSION})")
1019 status(" WEBP:" "NO")
1023 status(" PNG:" PNG_FOUND THEN "${PNG_LIBRARY} (ver ${PNG_VERSION})" ELSE "build (ver ${PNG_VERSION})")
1025 status(" PNG:" "NO")
1029 if(TIFF_VERSION_STRING AND TIFF_FOUND)
1030 status(" TIFF:" "${TIFF_LIBRARY} (ver ${TIFF_VERSION} - ${TIFF_VERSION_STRING})")
1032 status(" TIFF:" TIFF_FOUND THEN "${TIFF_LIBRARY} (ver ${TIFF_VERSION})" ELSE "build (ver ${TIFF_VERSION} - ${TIFF_VERSION_STRING})")
1035 status(" TIFF:" "NO")
1038 status(" JPEG 2000:" JASPER_FOUND THEN "${JASPER_LIBRARY} (ver ${JASPER_VERSION_STRING})" ELSE "build (ver ${JASPER_VERSION_STRING})")
1040 status(" JPEG 2000:" "NO")
1043 status(" OpenEXR:" OPENEXR_FOUND THEN "${OPENEXR_LIBRARIES} (ver ${OPENEXR_VERSION})" ELSE "build (ver ${OPENEXR_VERSION})")
1045 status(" OpenEXR:" "NO")
1049 status(" GDAL:" GDAL_FOUND THEN "${GDAL_LIBRARY}" ELSE "NO")
1051 status(" GDAL:" "NO")
1055 status(" GDCM:" GDCM_FOUND THEN "YES (ver ${GDCM_VERSION})" ELSE "NO")
1057 status(" GDCM:" "NO")
1060 # ========================== VIDEO IO ==========================
1062 status(" Video I/O:")
1064 if (DEFINED WITH_VFW)
1065 status(" Video for Windows:" HAVE_VFW THEN YES ELSE NO)
1066 endif(DEFINED WITH_VFW)
1068 if(DEFINED WITH_1394)
1069 status(" DC1394 1.x:" HAVE_DC1394 THEN "YES (ver ${ALIASOF_libdc1394_VERSION})" ELSE NO)
1070 status(" DC1394 2.x:" HAVE_DC1394_2 THEN "YES (ver ${ALIASOF_libdc1394-2_VERSION})" ELSE NO)
1071 endif(DEFINED WITH_1394)
1073 if(DEFINED WITH_FFMPEG)
1075 status(" FFMPEG:" WITH_FFMPEG THEN "YES (prebuilt binaries)" ELSE NO)
1077 status(" FFMPEG:" HAVE_FFMPEG THEN YES ELSE NO)
1079 status(" codec:" HAVE_FFMPEG_CODEC THEN "YES (ver ${ALIASOF_libavcodec_VERSION})" ELSE NO)
1080 status(" format:" HAVE_FFMPEG_FORMAT THEN "YES (ver ${ALIASOF_libavformat_VERSION})" ELSE NO)
1081 status(" util:" HAVE_FFMPEG_UTIL THEN "YES (ver ${ALIASOF_libavutil_VERSION})" ELSE NO)
1082 status(" swscale:" HAVE_FFMPEG_SWSCALE THEN "YES (ver ${ALIASOF_libswscale_VERSION})" ELSE NO)
1083 status(" resample:" HAVE_FFMPEG_RESAMPLE THEN "YES (ver ${ALIASOF_libavresample_VERSION})" ELSE NO)
1084 status(" gentoo-style:" HAVE_GENTOO_FFMPEG THEN YES ELSE NO)
1085 endif(DEFINED WITH_FFMPEG)
1087 if(DEFINED WITH_GSTREAMER)
1088 status(" GStreamer:" HAVE_GSTREAMER THEN "" ELSE NO)
1090 status(" base:" "YES (ver ${GSTREAMER_BASE_VERSION})")
1091 status(" video:" "YES (ver ${GSTREAMER_VIDEO_VERSION})")
1092 status(" app:" "YES (ver ${GSTREAMER_APP_VERSION})")
1093 status(" riff:" "YES (ver ${GSTREAMER_RIFF_VERSION})")
1094 status(" pbutils:" "YES (ver ${GSTREAMER_PBUTILS_VERSION})")
1095 endif(HAVE_GSTREAMER)
1096 endif(DEFINED WITH_GSTREAMER)
1098 if(DEFINED WITH_OPENNI)
1099 status(" OpenNI:" HAVE_OPENNI THEN "YES (ver ${OPENNI_VERSION_STRING}, build ${OPENNI_VERSION_BUILD})"
1101 status(" OpenNI PrimeSensor Modules:" HAVE_OPENNI_PRIME_SENSOR_MODULE
1102 THEN "YES (${OPENNI_PRIME_SENSOR_MODULE})" ELSE NO)
1103 endif(DEFINED WITH_OPENNI)
1105 if(DEFINED WITH_OPENNI2)
1106 status(" OpenNI2:" HAVE_OPENNI2 THEN "YES (ver ${OPENNI2_VERSION_STRING}, build ${OPENNI2_VERSION_BUILD})"
1108 endif(DEFINED WITH_OPENNI2)
1110 if(DEFINED WITH_PVAPI)
1111 status(" PvAPI:" HAVE_PVAPI THEN YES ELSE NO)
1112 endif(DEFINED WITH_PVAPI)
1114 if(DEFINED WITH_GIGEAPI)
1115 status(" GigEVisionSDK:" HAVE_GIGE_API THEN YES ELSE NO)
1116 endif(DEFINED WITH_GIGEAPI)
1118 if(DEFINED WITH_ARAVIS)
1119 status(" Aravis SDK:" HAVE_ARAVIS_API THEN "YES (${ARAVIS_LIBRARIES})" ELSE NO)
1120 endif(DEFINED WITH_ARAVIS)
1123 status(" AVFoundation:" HAVE_AVFOUNDATION THEN YES ELSE NO)
1124 if(WITH_QUICKTIME OR HAVE_QUICKTIME)
1125 status(" QuickTime:" HAVE_QUICKTIME THEN YES ELSE NO)
1127 if(WITH_QTKIT OR HAVE_QTKIT)
1128 status(" QTKit:" HAVE_QTKIT THEN "YES (deprecated)" ELSE NO)
1130 endif(DEFINED APPLE)
1132 if(DEFINED WITH_UNICAP)
1133 status(" UniCap:" HAVE_UNICAP THEN "YES (ver ${ALIASOF_libunicap_VERSION})" ELSE NO)
1134 status(" UniCap ucil:" HAVE_UNICAP_UCIL THEN "YES (ver ${ALIASOF_libucil_VERSION})" ELSE NO)
1135 endif(DEFINED WITH_UNICAP)
1137 if(DEFINED WITH_V4L)
1139 set(HAVE_CAMV4L_STR "YES")
1141 set(HAVE_CAMV4L_STR "NO")
1144 set(HAVE_CAMV4L2_STR "YES")
1145 elseif(HAVE_VIDEOIO)
1146 set(HAVE_CAMV4L2_STR "YES(videoio)")
1148 set(HAVE_CAMV4L2_STR "NO")
1150 status(" V4L/V4L2:" HAVE_LIBV4L
1151 THEN "Using libv4l1 (ver ${ALIASOF_libv4l1_VERSION}) / libv4l2 (ver ${ALIASOF_libv4l2_VERSION})"
1152 ELSE "${HAVE_CAMV4L_STR}/${HAVE_CAMV4L2_STR}")
1153 endif(DEFINED WITH_V4L)
1155 if(DEFINED WITH_DSHOW)
1156 status(" DirectShow:" HAVE_DSHOW THEN YES ELSE NO)
1157 endif(DEFINED WITH_DSHOW)
1159 if(DEFINED WITH_MSMF)
1160 status(" Media Foundation:" HAVE_MSMF THEN YES ELSE NO)
1161 endif(DEFINED WITH_MSMF)
1163 if(DEFINED WITH_XIMEA)
1164 status(" XIMEA:" HAVE_XIMEA THEN YES ELSE NO)
1165 endif(DEFINED WITH_XIMEA)
1167 if(DEFINED WITH_XINE)
1168 status(" Xine:" HAVE_XINE THEN "YES (ver ${ALIASOF_libxine_VERSION})" ELSE NO)
1169 endif(DEFINED WITH_XINE)
1171 if(DEFINED WITH_INTELPERC)
1172 status(" Intel PerC:" HAVE_INTELPERC THEN "YES" ELSE NO)
1173 endif(DEFINED WITH_INTELPERC)
1175 if(DEFINED WITH_GPHOTO2)
1176 status(" gPhoto2:" HAVE_GPHOTO2 THEN "YES" ELSE NO)
1177 endif(DEFINED WITH_GPHOTO2)
1180 # Order is similar to CV_PARALLEL_FRAMEWORK in core/src/parallel.cpp
1181 ocv_clear_vars(CV_PARALLEL_FRAMEWORK)
1183 set(CV_PARALLEL_FRAMEWORK "TBB (ver ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} interface ${TBB_INTERFACE_VERSION})")
1184 elseif(HAVE_CSTRIPES)
1185 set(CV_PARALLEL_FRAMEWORK "C=")
1187 set(CV_PARALLEL_FRAMEWORK "OpenMP")
1189 set(CV_PARALLEL_FRAMEWORK "GCD")
1190 elseif(WINRT OR HAVE_CONCURRENCY)
1191 set(CV_PARALLEL_FRAMEWORK "Concurrency")
1192 elseif(HAVE_PTHREADS_PF)
1193 set(CV_PARALLEL_FRAMEWORK "pthreads")
1195 set(CV_PARALLEL_FRAMEWORK "none")
1198 status(" Parallel framework:" TRUE THEN "${CV_PARALLEL_FRAMEWORK}" ELSE NO)
1201 # ========================== Other third-party libraries ==========================
1203 status(" Other third-party libraries:")
1205 if(WITH_IPP AND HAVE_IPP)
1206 status(" Use IPP:" "${IPP_VERSION_STR} [${IPP_VERSION_MAJOR}.${IPP_VERSION_MINOR}.${IPP_VERSION_BUILD}]")
1207 status(" at:" "${IPP_ROOT_DIR}")
1208 if(NOT HAVE_IPP_ICV_ONLY)
1209 status(" linked:" BUILD_WITH_DYNAMIC_IPP THEN "dynamic" ELSE "static")
1212 status(" Use IPP:" WITH_IPP AND NOT HAVE_IPP THEN "IPP not found or implicitly disabled" ELSE NO)
1215 if(DEFINED WITH_IPP_A)
1216 status(" Use IPP Async:" HAVE_IPP_A THEN "YES" ELSE NO)
1217 endif(DEFINED WITH_IPP_A)
1220 status(" Use VA:" HAVE_VA THEN "YES" ELSE NO)
1221 endif(DEFINED WITH_VA)
1223 if(DEFINED WITH_VA_INTEL)
1224 status(" Use Intel VA-API/OpenCL:" HAVE_VA_INTEL THEN "YES (MSDK: ${VA_INTEL_MSDK_ROOT} OpenCL: ${VA_INTEL_IOCL_ROOT})" ELSE NO)
1225 endif(DEFINED WITH_VA_INTEL)
1227 if(DEFINED WITH_LAPACK)
1228 status(" Use Lapack:" HAVE_LAPACK THEN "YES" ELSE NO)
1229 endif(DEFINED WITH_LAPACK)
1231 status(" Use Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO)
1232 status(" Use Cuda:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING})" ELSE NO)
1233 status(" Use OpenCL:" HAVE_OPENCL THEN YES ELSE NO)
1234 status(" Use OpenVX:" HAVE_OPENVX THEN "YES (${OPENVX_LIBRARIES})" ELSE "NO")
1235 status(" Use custom HAL:" OpenCV_USED_HAL THEN "YES (${OpenCV_USED_HAL})" ELSE "NO")
1239 status(" NVIDIA CUDA")
1241 status(" Use CUFFT:" HAVE_CUFFT THEN YES ELSE NO)
1242 status(" Use CUBLAS:" HAVE_CUBLAS THEN YES ELSE NO)
1243 status(" USE NVCUVID:" HAVE_NVCUVID THEN YES ELSE NO)
1244 status(" NVIDIA GPU arch:" ${OPENCV_CUDA_ARCH_BIN})
1245 status(" NVIDIA PTX archs:" ${OPENCV_CUDA_ARCH_PTX})
1246 status(" Use fast math:" CUDA_FAST_MATH THEN YES ELSE NO)
1251 if(HAVE_OPENCL_STATIC)
1252 set(__opencl_type "<Link with OpenCL library>")
1254 set(__opencl_type "<Dynamic loading of OpenCL library>")
1256 status(" OpenCL:" ${__opencl_type})
1257 if(OPENCL_INCLUDE_DIRS)
1258 status(" Include path:" ${OPENCL_INCLUDE_DIRS})
1260 if(OPENCL_LIBRARIES)
1262 foreach(l ${OPENCL_LIBRARIES})
1264 get_target_property(p ${l} LOCATION)
1265 if(p MATCHES NOTFOUND)
1266 list(APPEND __libs "${l}")
1268 list(APPEND __libs "${p}")
1271 list(APPEND __libs "${l}")
1274 status(" Link libraries:" ${__libs})
1276 status(" Use AMDFFT:" HAVE_CLAMDFFT THEN YES ELSE NO)
1277 status(" Use AMDBLAS:" HAVE_CLAMDBLAS THEN YES ELSE NO)
1280 # ========================== python ==========================
1282 status(" Python 2:")
1283 status(" Interpreter:" PYTHON2INTERP_FOUND THEN "${PYTHON2_EXECUTABLE} (ver ${PYTHON2_VERSION_STRING})" ELSE NO)
1284 if(BUILD_opencv_python2)
1285 if(PYTHON2LIBS_VERSION_STRING)
1286 status(" Libraries:" HAVE_opencv_python2 THEN "${PYTHON2_LIBRARIES} (ver ${PYTHON2LIBS_VERSION_STRING})" ELSE NO)
1288 status(" Libraries:" HAVE_opencv_python2 THEN "${PYTHON2_LIBRARIES}" ELSE NO)
1290 status(" numpy:" PYTHON2_NUMPY_INCLUDE_DIRS THEN "${PYTHON2_NUMPY_INCLUDE_DIRS} (ver ${PYTHON2_NUMPY_VERSION})" ELSE "NO (Python wrappers can not be generated)")
1291 status(" packages path:" PYTHON2_EXECUTABLE THEN "${PYTHON2_PACKAGES_PATH}" ELSE "-")
1295 status(" Python 3:")
1296 status(" Interpreter:" PYTHON3INTERP_FOUND THEN "${PYTHON3_EXECUTABLE} (ver ${PYTHON3_VERSION_STRING})" ELSE NO)
1297 if(BUILD_opencv_python3)
1298 if(PYTHON3LIBS_VERSION_STRING)
1299 status(" Libraries:" HAVE_opencv_python3 THEN "${PYTHON3_LIBRARIES} (ver ${PYTHON3LIBS_VERSION_STRING})" ELSE NO)
1301 status(" Libraries:" HAVE_opencv_python3 THEN "${PYTHON3_LIBRARIES}" ELSE NO)
1303 status(" numpy:" PYTHON3_NUMPY_INCLUDE_DIRS THEN "${PYTHON3_NUMPY_INCLUDE_DIRS} (ver ${PYTHON3_NUMPY_VERSION})" ELSE "NO (Python3 wrappers can not be generated)")
1304 status(" packages path:" PYTHON3_EXECUTABLE THEN "${PYTHON3_PACKAGES_PATH}" ELSE "-")
1308 status(" Python (for build):" PYTHON_DEFAULT_AVAILABLE THEN "${PYTHON_DEFAULT_EXECUTABLE}" ELSE NO)
1310 # ========================== java ==========================
1313 status(" ant:" ANT_EXECUTABLE THEN "${ANT_EXECUTABLE} (ver ${ANT_VERSION})" ELSE NO)
1315 status(" JNI:" JNI_INCLUDE_DIRS THEN "${JNI_INCLUDE_DIRS}" ELSE NO)
1317 status(" Java wrappers:" HAVE_opencv_java THEN YES ELSE NO)
1318 status(" Java tests:" BUILD_TESTS AND opencv_test_java_BINARY_DIR THEN YES ELSE NO)
1320 # ========================= matlab =========================
1324 status(" mex:" MATLAB_MEX_SCRIPT THEN "${MATLAB_MEX_SCRIPT}" ELSE NO)
1325 status(" Compiler/generator:" MEX_WORKS THEN "Working" ELSE "Not working (bindings will not be generated)")
1327 status(" Matlab:" WITH_MATLAB AND NOT MATLAB_FOUND THEN "Matlab not found or implicitly disabled" ELSE NO)
1330 # ========================== documentation ==========================
1333 status(" Documentation:")
1334 status(" Doxygen:" DOXYGEN_FOUND THEN "${DOXYGEN_EXECUTABLE} (ver ${DOXYGEN_VERSION})" ELSE NO)
1337 # ========================== samples and tests ==========================
1339 status(" Tests and samples:")
1340 status(" Tests:" BUILD_TESTS AND HAVE_opencv_ts THEN YES ELSE NO)
1341 status(" Performance tests:" BUILD_PERF_TESTS AND HAVE_opencv_ts THEN YES ELSE NO)
1342 status(" C/C++ Examples:" BUILD_EXAMPLES THEN YES ELSE NO)
1344 # ========================== auxiliary ==========================
1346 status(" Install path:" "${CMAKE_INSTALL_PREFIX}")
1348 status(" cvconfig.h is in:" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}")
1349 status("-----------------------------------------------------------------")
1352 ocv_finalize_status()
1354 # ----------------------------------------------------------------------------
1355 # Warn in the case of in-source build
1356 # ----------------------------------------------------------------------------
1357 if("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
1358 message(WARNING "The source directory is the same as binary directory. \"make clean\" may damage the source tree")
1361 # ----------------------------------------------------------------------------
1363 # ----------------------------------------------------------------------------
1365 include(cmake/OpenCVPackaging.cmake)
1367 # This should be the last command
1368 ocv_cmake_dump_vars("" TOFILE "CMakeVars.txt")
1369 ocv_cmake_eval(DEBUG_POST ONCE)