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 3.0 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 CMP0046 OLD)
106 cmake_policy(SET CMP0051 NEW)
110 cmake_policy(SET CMP0056 NEW)
114 cmake_policy(SET CMP0067 NEW)
117 include(cmake/OpenCVUtils.cmake)
119 # must go before the project command
120 ocv_update(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE)
121 if(DEFINED CMAKE_BUILD_TYPE)
122 set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} )
127 project(OpenCV CXX C)
130 set(CMAKE_USE_RELATIVE_PATHS ON CACHE INTERNAL "" FORCE)
133 ocv_cmake_eval(DEBUG_PRE ONCE)
135 ocv_clear_vars(OpenCVModules_TARGETS)
137 include(cmake/OpenCVDownload.cmake)
139 # ----------------------------------------------------------------------------
140 # Break in case of popular CMake configuration mistakes
141 # ----------------------------------------------------------------------------
142 if(NOT CMAKE_SIZEOF_VOID_P GREATER 0)
143 message(FATAL_ERROR "CMake fails to deterimine the bitness of target platform.
144 Please check your CMake and compiler installation. If you are crosscompiling then ensure that your CMake toolchain file correctly sets the compiler details.")
147 # ----------------------------------------------------------------------------
148 # Detect compiler and target platform architecture
149 # ----------------------------------------------------------------------------
150 OCV_OPTION(ENABLE_CXX11 "Enable C++11 compilation mode" "${OPENCV_CXX11}")
151 include(cmake/OpenCVDetectCXXCompiler.cmake)
153 # Add these standard paths to the search paths for FIND_LIBRARY
154 # to find libraries from these locations first
155 if(UNIX AND NOT ANDROID)
156 if(X86_64 OR CMAKE_SIZEOF_VOID_P EQUAL 8)
158 list(APPEND CMAKE_LIBRARY_PATH /lib64)
160 list(APPEND CMAKE_LIBRARY_PATH /lib)
162 if(EXISTS /usr/lib64)
163 list(APPEND CMAKE_LIBRARY_PATH /usr/lib64)
165 list(APPEND CMAKE_LIBRARY_PATH /usr/lib)
167 elseif(X86 OR CMAKE_SIZEOF_VOID_P EQUAL 4)
169 list(APPEND CMAKE_LIBRARY_PATH /lib32)
171 list(APPEND CMAKE_LIBRARY_PATH /lib)
173 if(EXISTS /usr/lib32)
174 list(APPEND CMAKE_LIBRARY_PATH /usr/lib32)
176 list(APPEND CMAKE_LIBRARY_PATH /usr/lib)
181 # Add these standard paths to the search paths for FIND_PATH
182 # to find include files from these locations first
185 list(APPEND CMAKE_INCLUDE_PATH /mingw)
188 list(APPEND CMAKE_INCLUDE_PATH /mingw32)
191 list(APPEND CMAKE_INCLUDE_PATH /mingw64)
195 # ----------------------------------------------------------------------------
196 # OpenCV cmake options
197 # ----------------------------------------------------------------------------
199 OCV_OPTION(OPENCV_ENABLE_NONFREE "Enable non-free algorithms" OFF)
201 # Optional 3rd party components
202 # ===================================================
203 OCV_OPTION(WITH_1394 "Include IEEE1394 support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
204 OCV_OPTION(WITH_AVFOUNDATION "Use AVFoundation for Video I/O (iOS/Mac)" ON IF APPLE)
205 OCV_OPTION(WITH_CARBON "Use Carbon for UI instead of Cocoa" OFF IF APPLE )
206 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"))
207 OCV_OPTION(WITH_CPUFEATURES "Use cpufeatures Android library" ON IF ANDROID)
208 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) )
209 OCV_OPTION(WITH_CUDA "Include NVidia Cuda Runtime support" ON IF (NOT IOS AND NOT WINRT) )
210 OCV_OPTION(WITH_CUFFT "Include NVidia Cuda Fast Fourier Transform (FFT) library support" ON IF (NOT IOS AND NOT WINRT) )
211 OCV_OPTION(WITH_CUBLAS "Include NVidia Cuda Basic Linear Algebra Subprograms (BLAS) library support" OFF IF (NOT IOS AND NOT WINRT) )
212 OCV_OPTION(WITH_NVCUVID "Include NVidia Video Decoding library support" OFF IF (NOT IOS AND NOT APPLE) )
213 OCV_OPTION(WITH_EIGEN "Include Eigen2/Eigen3 support" ON IF (NOT WINRT) )
214 OCV_OPTION(WITH_VFW "Include Video for Windows support" ON IF WIN32 )
215 OCV_OPTION(WITH_FFMPEG "Include FFMPEG support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
216 OCV_OPTION(WITH_GSTREAMER "Include Gstreamer support" ON IF (NOT ANDROID) )
217 OCV_OPTION(WITH_GSTREAMER_0_10 "Enable Gstreamer 0.10 support (instead of 1.x)" OFF )
218 OCV_OPTION(WITH_GTK "Include GTK support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) )
219 OCV_OPTION(WITH_GTK_2_X "Use GTK version 2" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
220 OCV_OPTION(WITH_IPP "Include Intel IPP support" NOT MINGW IF (X86_64 OR X86) AND NOT WINRT )
221 OCV_OPTION(WITH_HALIDE "Include Halide support" OFF)
222 OCV_OPTION(WITH_JASPER "Include JPEG2K support" ON IF (NOT IOS) )
223 OCV_OPTION(WITH_JPEG "Include JPEG support" ON)
224 OCV_OPTION(WITH_WEBP "Include WebP support" ON IF (NOT WINRT) )
225 OCV_OPTION(WITH_OPENEXR "Include ILM support via OpenEXR" ON IF (NOT IOS AND NOT WINRT) )
226 OCV_OPTION(WITH_OPENGL "Include OpenGL support" OFF IF (NOT ANDROID AND NOT WINRT) )
227 OCV_OPTION(WITH_OPENVX "Include OpenVX support" OFF)
228 OCV_OPTION(WITH_OPENNI "Include OpenNI support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
229 OCV_OPTION(WITH_OPENNI2 "Include OpenNI2 support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
230 OCV_OPTION(WITH_PNG "Include PNG support" ON)
231 OCV_OPTION(WITH_GDCM "Include DICOM support" OFF)
232 OCV_OPTION(WITH_PVAPI "Include Prosilica GigE support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
233 OCV_OPTION(WITH_GIGEAPI "Include Smartek GigE support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
234 OCV_OPTION(WITH_ARAVIS "Include Aravis GigE support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT AND NOT WIN32) )
235 OCV_OPTION(WITH_QT "Build with Qt Backend support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
236 OCV_OPTION(WITH_WIN32UI "Build with Win32 UI Backend support" ON IF WIN32 AND NOT WINRT)
237 OCV_OPTION(WITH_QUICKTIME "Use QuickTime for Video I/O" OFF IF APPLE )
238 OCV_OPTION(WITH_QTKIT "Use QTKit Video I/O backend" OFF IF APPLE )
239 OCV_OPTION(WITH_TBB "Include Intel TBB support" OFF IF (NOT IOS AND NOT WINRT) )
240 OCV_OPTION(WITH_OPENMP "Include OpenMP support" OFF)
241 OCV_OPTION(WITH_CSTRIPES "Include C= support" OFF IF (WIN32 AND NOT WINRT) )
242 OCV_OPTION(WITH_PTHREADS_PF "Use pthreads-based parallel_for" ON IF (NOT WIN32 OR MINGW) )
243 OCV_OPTION(WITH_TIFF "Include TIFF support" ON IF (NOT IOS) )
244 OCV_OPTION(WITH_UNICAP "Include Unicap support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
245 OCV_OPTION(WITH_V4L "Include Video 4 Linux support" ON IF (UNIX AND NOT ANDROID) )
246 OCV_OPTION(WITH_LIBV4L "Use libv4l for Video 4 Linux support" OFF IF (UNIX AND NOT ANDROID) )
247 OCV_OPTION(WITH_DSHOW "Build VideoIO with DirectShow support" ON IF (WIN32 AND NOT ARM AND NOT WINRT) )
248 OCV_OPTION(WITH_MSMF "Build VideoIO with Media Foundation support" OFF IF WIN32 )
249 OCV_OPTION(WITH_XIMEA "Include XIMEA cameras support" OFF IF (NOT ANDROID AND NOT WINRT) )
250 OCV_OPTION(WITH_XINE "Include Xine support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
251 OCV_OPTION(WITH_CLP "Include Clp support (EPL)" OFF)
252 OCV_OPTION(WITH_OPENCL "Include OpenCL Runtime support" NOT ANDROID IF (NOT IOS AND NOT WINRT) )
253 OCV_OPTION(WITH_OPENCL_SVM "Include OpenCL Shared Virtual Memory support" OFF ) # experimental
254 OCV_OPTION(WITH_OPENCLAMDFFT "Include AMD OpenCL FFT library support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
255 OCV_OPTION(WITH_OPENCLAMDBLAS "Include AMD OpenCL BLAS library support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
256 OCV_OPTION(WITH_DIRECTX "Include DirectX support" ON IF (WIN32 AND NOT WINRT) )
257 OCV_OPTION(WITH_INTELPERC "Include Intel Perceptual Computing support" OFF IF (WIN32 AND NOT WINRT) )
258 OCV_OPTION(WITH_MATLAB "Include Matlab support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT))
259 OCV_OPTION(WITH_VA "Include VA support" OFF IF (UNIX AND NOT ANDROID) )
260 OCV_OPTION(WITH_VA_INTEL "Include Intel VA-API/OpenCL support" OFF IF (UNIX AND NOT ANDROID) )
261 OCV_OPTION(WITH_MFX "Include Intel Media SDK support" OFF IF (UNIX AND NOT ANDROID) )
262 OCV_OPTION(WITH_GDAL "Include GDAL Support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
263 OCV_OPTION(WITH_GPHOTO2 "Include gPhoto2 library support" ON IF (UNIX AND NOT ANDROID) )
264 OCV_OPTION(WITH_LAPACK "Include Lapack library support" ON IF (NOT ANDROID AND NOT IOS) )
265 OCV_OPTION(WITH_ITT "Include Intel ITT support" ON IF (NOT APPLE_FRAMEWORK) )
267 # OpenCV build components
268 # ===================================================
269 OCV_OPTION(BUILD_SHARED_LIBS "Build shared libraries (.dll/.so) instead of static ones (.lib/.a)" NOT (ANDROID OR APPLE_FRAMEWORK) )
270 OCV_OPTION(BUILD_opencv_apps "Build utility applications (used for example to train classifiers)" (NOT ANDROID AND NOT WINRT) IF (NOT APPLE_FRAMEWORK) )
271 OCV_OPTION(BUILD_ANDROID_EXAMPLES "Build examples for Android platform" ON IF ANDROID )
272 OCV_OPTION(BUILD_DOCS "Create build rules for OpenCV Documentation" ON IF (NOT WINRT OR APPLE_FRAMEWORK))
273 OCV_OPTION(BUILD_EXAMPLES "Build all examples" OFF )
274 OCV_OPTION(BUILD_PACKAGE "Enables 'make package_source' command" ON IF NOT WINRT)
275 OCV_OPTION(BUILD_PERF_TESTS "Build performance tests" ON IF (NOT APPLE_FRAMEWORK) )
276 OCV_OPTION(BUILD_TESTS "Build accuracy & regression tests" ON IF (NOT APPLE_FRAMEWORK) )
277 OCV_OPTION(BUILD_WITH_DEBUG_INFO "Include debug info into debug libs (not MSCV only)" ON )
278 OCV_OPTION(BUILD_WITH_STATIC_CRT "Enables use of staticaly linked CRT for staticaly linked OpenCV" ON IF MSVC )
279 OCV_OPTION(BUILD_WITH_DYNAMIC_IPP "Enables dynamic linking of IPP (only for standalone IPP)" OFF )
280 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 )
281 OCV_OPTION(BUILD_ANDROID_SERVICE "Build OpenCV Manager for Google Play" OFF IF ANDROID )
282 OCV_OPTION(BUILD_CUDA_STUBS "Build CUDA modules stubs when no CUDA SDK" OFF IF (NOT APPLE_FRAMEWORK) )
285 OCV_OPTION(BUILD_ZLIB "Build zlib from source" WIN32 OR APPLE )
286 OCV_OPTION(BUILD_TIFF "Build libtiff from source" WIN32 OR ANDROID OR APPLE )
287 OCV_OPTION(BUILD_JASPER "Build libjasper from source" WIN32 OR ANDROID OR APPLE )
288 OCV_OPTION(BUILD_JPEG "Build libjpeg from source" WIN32 OR ANDROID OR APPLE )
289 OCV_OPTION(BUILD_PNG "Build libpng from source" WIN32 OR ANDROID OR APPLE )
290 OCV_OPTION(BUILD_OPENEXR "Build openexr from source" (WIN32 OR ANDROID OR APPLE) AND NOT WINRT)
291 OCV_OPTION(BUILD_TBB "Download and build TBB from source" ANDROID )
292 OCV_OPTION(BUILD_IPP_IW "Build IPP IW from source" NOT MINGW IF (X86_64 OR X86) AND NOT WINRT )
293 OCV_OPTION(BUILD_ITT "Build Intel ITT from source" NOT MINGW IF (X86_64 OR X86) AND NOT WINRT AND NOT APPLE_FRAMEWORK )
295 # OpenCV installation options
296 # ===================================================
297 OCV_OPTION(INSTALL_CREATE_DISTRIB "Change install rules to build the distribution package" OFF )
298 OCV_OPTION(INSTALL_C_EXAMPLES "Install C examples" OFF )
299 OCV_OPTION(INSTALL_PYTHON_EXAMPLES "Install Python examples" OFF )
300 OCV_OPTION(INSTALL_ANDROID_EXAMPLES "Install Android examples" OFF IF ANDROID )
301 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) )
302 OCV_OPTION(INSTALL_TESTS "Install accuracy and performance test binaries and test data" OFF)
304 # OpenCV build options
305 # ===================================================
306 OCV_OPTION(ENABLE_CCACHE "Use ccache" (UNIX AND NOT IOS AND (CMAKE_GENERATOR MATCHES "Makefile" OR CMAKE_GENERATOR MATCHES "Ninja")) )
307 OCV_OPTION(ENABLE_PRECOMPILED_HEADERS "Use precompiled headers" ON IF (NOT IOS AND NOT CMAKE_CROSSCOMPILING) )
308 OCV_OPTION(ENABLE_SOLUTION_FOLDERS "Solution folder in Visual Studio or in other IDEs" (MSVC_IDE OR CMAKE_GENERATOR MATCHES Xcode) )
309 OCV_OPTION(ENABLE_PROFILING "Enable profiling in the GCC compiler (Add flags: -g -pg)" OFF IF CMAKE_COMPILER_IS_GNUCXX )
310 OCV_OPTION(ENABLE_COVERAGE "Enable coverage collection with GCov" OFF IF CMAKE_COMPILER_IS_GNUCXX )
311 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) )
312 OCV_OPTION(ENABLE_POWERPC "Enable PowerPC for GCC" ON IF (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_PROCESSOR MATCHES powerpc.*) )
313 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)) )
314 OCV_OPTION(ENABLE_NEON "Enable NEON instructions" (NEON OR ANDROID_ARM_NEON OR AARCH64) IF CMAKE_COMPILER_IS_GNUCXX AND (ARM OR AARCH64 OR IOS) )
315 OCV_OPTION(ENABLE_VFPV3 "Enable VFPv3-D32 instructions" OFF IF CMAKE_COMPILER_IS_GNUCXX AND (ARM OR AARCH64 OR IOS) )
316 OCV_OPTION(ENABLE_NOISY_WARNINGS "Show all warnings even if they are too noisy" OFF )
317 OCV_OPTION(OPENCV_WARNINGS_ARE_ERRORS "Treat warnings as errors" OFF )
318 OCV_OPTION(ANDROID_EXAMPLES_WITH_LIBS "Build binaries of Android examples with native libraries" OFF IF ANDROID )
319 OCV_OPTION(ENABLE_IMPL_COLLECTION "Collect implementation data on function call" OFF )
320 OCV_OPTION(ENABLE_INSTRUMENTATION "Instrument functions to collect calls trace and performance" OFF )
321 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) )
322 OCV_OPTION(ENABLE_BUILD_HARDENING "Enable hardening of the resulting binaries (against security attacks, detects memory corruption, etc)" OFF)
323 OCV_OPTION(GENERATE_ABI_DESCRIPTOR "Generate XML file for abi_compliance_checker tool" OFF IF UNIX)
324 OCV_OPTION(CV_ENABLE_INTRINSICS "Use intrinsic-based optimized code" ON )
325 OCV_OPTION(CV_DISABLE_OPTIMIZATION "Disable explicit optimized code (dispatched code/intrinsics/loop unrolling/etc)" OFF )
326 OCV_OPTION(CV_TRACE "Enable OpenCV code trace" ON)
329 if(ENABLE_IMPL_COLLECTION)
330 add_definitions(-DCV_COLLECT_IMPL_DATA)
334 # ----------------------------------------------------------------------------
335 # Get actual OpenCV version number from sources
336 # ----------------------------------------------------------------------------
337 include(cmake/OpenCVVersion.cmake)
340 # ----------------------------------------------------------------------------
341 # Build & install layouts
342 # ----------------------------------------------------------------------------
344 # Save libs and executables in the same place
345 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin" CACHE PATH "Output directory for applications")
348 if(ANDROID_ABI MATCHES "NEON")
351 if(ANDROID_ABI MATCHES "VFPV3")
357 ocv_update(OPENCV_DOC_INSTALL_PATH doc)
359 ocv_update(OPENCV_DOC_INSTALL_PATH share/OpenCV/doc)
362 if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
363 if(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH)
364 ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "${OpenCV_ARCH}/${OpenCV_RUNTIME}/")
366 message(STATUS "Can't detect runtime and/or arch")
367 ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "")
370 ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "sdk/native/")
372 ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "")
376 ocv_update(OPENCV_SAMPLES_BIN_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}samples/${ANDROID_NDK_ABI_NAME}")
378 ocv_update(OPENCV_SAMPLES_BIN_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}samples")
382 ocv_update(OPENCV_BIN_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}bin/${ANDROID_NDK_ABI_NAME}")
384 ocv_update(OPENCV_BIN_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}bin")
387 if(NOT OPENCV_TEST_INSTALL_PATH)
388 ocv_update(OPENCV_TEST_INSTALL_PATH "${OPENCV_BIN_INSTALL_PATH}")
391 if (OPENCV_TEST_DATA_PATH)
392 get_filename_component(OPENCV_TEST_DATA_PATH ${OPENCV_TEST_DATA_PATH} ABSOLUTE)
396 ocv_update(OPENCV_TEST_DATA_INSTALL_PATH "sdk/etc/testdata")
398 ocv_update(OPENCV_TEST_DATA_INSTALL_PATH "testdata")
400 ocv_update(OPENCV_TEST_DATA_INSTALL_PATH "share/OpenCV/testdata")
404 set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib/${ANDROID_NDK_ABI_NAME}")
405 ocv_update(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib/${ANDROID_NDK_ABI_NAME}")
406 ocv_update(OPENCV_LIB_INSTALL_PATH sdk/native/libs/${ANDROID_NDK_ABI_NAME})
407 ocv_update(OPENCV_3P_LIB_INSTALL_PATH sdk/native/3rdparty/libs/${ANDROID_NDK_ABI_NAME})
408 ocv_update(OPENCV_CONFIG_INSTALL_PATH sdk/native/jni)
409 ocv_update(OPENCV_INCLUDE_INSTALL_PATH sdk/native/jni/include)
410 ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH samples/native)
411 ocv_update(OPENCV_OTHER_INSTALL_PATH sdk/etc)
413 set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib")
414 ocv_update(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}")
416 if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
418 ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}")
420 ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}")
422 ocv_update(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}")
423 ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH samples/native)
424 ocv_update(OPENCV_JAR_INSTALL_PATH java)
425 ocv_update(OPENCV_OTHER_INSTALL_PATH etc)
426 ocv_update(OPENCV_CONFIG_INSTALL_PATH ".")
428 ocv_update(OPENCV_LIB_INSTALL_PATH lib${LIB_SUFFIX})
429 ocv_update(OPENCV_3P_LIB_INSTALL_PATH share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH})
430 ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH share/OpenCV/samples)
431 ocv_update(OPENCV_JAR_INSTALL_PATH share/OpenCV/java)
432 ocv_update(OPENCV_OTHER_INSTALL_PATH share/OpenCV)
434 if(NOT DEFINED OPENCV_CONFIG_INSTALL_PATH)
435 math(EXPR SIZEOF_VOID_P_BITS "8 * ${CMAKE_SIZEOF_VOID_P}")
436 if(LIB_SUFFIX AND NOT SIZEOF_VOID_P_BITS EQUAL LIB_SUFFIX)
437 ocv_update(OPENCV_CONFIG_INSTALL_PATH lib${LIB_SUFFIX}/cmake/opencv)
439 ocv_update(OPENCV_CONFIG_INSTALL_PATH share/OpenCV)
443 ocv_update(OPENCV_INCLUDE_INSTALL_PATH "include")
446 ocv_update(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OPENCV_LIB_INSTALL_PATH}")
447 set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
449 if(INSTALL_TO_MANGLED_PATHS)
450 set(OPENCV_INCLUDE_INSTALL_PATH ${OPENCV_INCLUDE_INSTALL_PATH}/opencv-${OPENCV_VERSION})
452 OPENCV_3P_LIB_INSTALL_PATH
453 OPENCV_SAMPLES_SRC_INSTALL_PATH
454 OPENCV_CONFIG_INSTALL_PATH
455 OPENCV_DOC_INSTALL_PATH
456 OPENCV_JAR_INSTALL_PATH
457 OPENCV_TEST_DATA_INSTALL_PATH
458 OPENCV_OTHER_INSTALL_PATH
460 string(REPLACE "OpenCV" "OpenCV-${OPENCV_VERSION}" ${v} "${${v}}")
461 string(REPLACE "opencv" "opencv-${OPENCV_VERSION}" ${v} "${${v}}")
468 set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")
469 set(OPENCV_DEBUG_POSTFIX d)
472 set(OPENCV_DLLVERSION "")
473 set(OPENCV_DEBUG_POSTFIX "")
476 if(DEFINED CMAKE_DEBUG_POSTFIX)
477 set(OPENCV_DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}")
480 if((INSTALL_CREATE_DISTRIB AND BUILD_SHARED_LIBS AND NOT DEFINED BUILD_opencv_world) OR APPLE_FRAMEWORK)
481 set(BUILD_opencv_world ON CACHE INTERNAL "")
484 # ----------------------------------------------------------------------------
485 # Path for build/platform -specific headers
486 # ----------------------------------------------------------------------------
487 ocv_update(OPENCV_CONFIG_FILE_INCLUDE_DIR "${CMAKE_BINARY_DIR}/" CACHE PATH "Where to create the platform-dependant cvconfig.h")
488 ocv_include_directories(${OPENCV_CONFIG_FILE_INCLUDE_DIR})
490 # ----------------------------------------------------------------------------
491 # Path for additional modules
492 # ----------------------------------------------------------------------------
493 set(OPENCV_EXTRA_MODULES_PATH "" CACHE PATH "Where to look for additional OpenCV modules")
495 # ----------------------------------------------------------------------------
496 # Autodetect if we are in a GIT repository
497 # ----------------------------------------------------------------------------
498 find_host_package(Git QUIET)
500 if(NOT DEFINED OPENCV_VCSVERSION AND GIT_FOUND)
501 execute_process(COMMAND "${GIT_EXECUTABLE}" describe --tags --always --dirty --match "[0-9].[0-9].[0-9]*"
502 WORKING_DIRECTORY "${OpenCV_SOURCE_DIR}"
503 OUTPUT_VARIABLE OPENCV_VCSVERSION
504 RESULT_VARIABLE GIT_RESULT
506 OUTPUT_STRIP_TRAILING_WHITESPACE
508 if(NOT GIT_RESULT EQUAL 0)
509 set(OPENCV_VCSVERSION "unknown")
511 elseif(NOT DEFINED OPENCV_VCSVERSION)
513 set(OPENCV_VCSVERSION "unknown")
517 # ----------------------------------------------------------------------------
518 # OpenCV compiler and linker options
519 # ----------------------------------------------------------------------------
520 # In case of Makefiles if the user does not setup CMAKE_BUILD_TYPE, assume it's Release:
521 if(CMAKE_GENERATOR MATCHES "Makefiles|Ninja" AND "${CMAKE_BUILD_TYPE}" STREQUAL "")
522 set(CMAKE_BUILD_TYPE Release)
525 # --- Python Support ---
526 include(cmake/OpenCVDetectPython.cmake)
528 include(cmake/OpenCVCompilerOptions.cmake)
531 # ----------------------------------------------------------------------------
532 # Use statically or dynamically linked CRT?
534 # ----------------------------------------------------------------------------
536 include(cmake/OpenCVCRTLinkage.cmake)
539 if(WIN32 AND NOT MINGW)
540 add_definitions(-D_VARIADIC_MAX=10)
541 endif(WIN32 AND NOT MINGW)
544 # ----------------------------------------------------------------------------
545 # CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC..
546 # ----------------------------------------------------------------------------
548 if(NOT APPLE_FRAMEWORK)
549 find_package(PkgConfig QUIET)
551 include(CheckFunctionExists)
552 include(CheckIncludeFile)
553 include(CheckSymbolExists)
556 CHECK_INCLUDE_FILE(pthread.h HAVE_LIBPTHREAD)
558 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} dl m log)
559 elseif(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD|NetBSD|DragonFly|OpenBSD")
560 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} m pthread)
562 # no need to link to system libs with emscripten
564 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} dl m pthread rt)
567 set(HAVE_LIBPTHREAD YES)
570 CHECK_SYMBOL_EXISTS(posix_memalign stdlib.h HAVE_POSIX_MEMALIGN)
571 CHECK_INCLUDE_FILE(malloc.h HAVE_MALLOC_H)
573 CHECK_SYMBOL_EXISTS(memalign malloc.h HAVE_MEMALIGN)
577 include(cmake/OpenCVPCHSupport.cmake)
578 include(cmake/OpenCVModule.cmake)
580 # ----------------------------------------------------------------------------
581 # Detect endianness of build platform
582 # ----------------------------------------------------------------------------
585 # test_big_endian needs try_compile, which doesn't work for iOS
586 # http://public.kitware.com/Bug/view.php?id=12288
587 set(WORDS_BIGENDIAN 0)
589 include(TestBigEndian)
590 test_big_endian(WORDS_BIGENDIAN)
593 # ----------------------------------------------------------------------------
594 # Detect 3rd-party libraries
595 # ----------------------------------------------------------------------------
597 if(ANDROID AND WITH_CPUFEATURES)
598 add_subdirectory(3rdparty/cpufeatures)
599 set(HAVE_CPUFEATURES 1)
602 include(cmake/OpenCVFindLibsGrfmt.cmake)
603 include(cmake/OpenCVFindLibsGUI.cmake)
604 include(cmake/OpenCVFindLibsVideo.cmake)
605 include(cmake/OpenCVFindLibsPerf.cmake)
606 include(cmake/OpenCVFindLAPACK.cmake)
608 # ----------------------------------------------------------------------------
609 # Detect other 3rd-party libraries/tools
610 # ----------------------------------------------------------------------------
612 # --- Doxygen for documentation ---
614 find_package(Doxygen)
616 unset(DOXYGEN_FOUND CACHE)
619 # --- Java Support ---
620 include(cmake/OpenCVDetectApacheAnt.cmake)
622 include(cmake/OpenCVDetectAndroidSDK.cmake)
624 if(NOT ANDROID_TOOLS_Pkg_Revision GREATER 13)
625 message(WARNING "OpenCV requires Android SDK tools revision 14 or newer. Otherwise tests and samples will no be compiled.")
631 if(ANDROID AND ANDROID_EXECUTABLE AND ANT_EXECUTABLE AND (ANT_VERSION VERSION_GREATER 1.7) AND (ANDROID_TOOLS_Pkg_Revision GREATER 13))
632 SET(CAN_BUILD_ANDROID_PROJECTS TRUE)
634 SET(CAN_BUILD_ANDROID_PROJECTS FALSE)
639 include(cmake/OpenCVDetectOpenCL.cmake)
644 include(cmake/OpenCVDetectHalide.cmake)
649 include(cmake/OpenCVDetectDirectX.cmake)
652 # --- Matlab/Octave ---
654 include(cmake/OpenCVFindMatlab.cmake)
657 include(cmake/OpenCVDetectVTK.cmake)
660 include(cmake/FindOpenVX.cmake)
663 # ----------------------------------------------------------------------------
665 # ----------------------------------------------------------------------------
666 set(_hal_includes "")
667 macro(ocv_hal_register HAL_LIBRARIES_VAR HAL_HEADERS_VAR HAL_INCLUDE_DIRS_VAR)
669 foreach (l ${${HAL_LIBRARIES_VAR}})
671 get_filename_component(l "${l}" ABSOLUTE)
673 list(APPEND OPENCV_HAL_LINKER_LIBS ${l})
676 foreach (h ${${HAL_HEADERS_VAR}})
677 set(_hal_includes "${_hal_includes}\n#include \"${h}\"")
680 ocv_include_directories(${${HAL_INCLUDE_DIRS_VAR}})
683 if(NOT DEFINED OpenCV_HAL)
684 set(OpenCV_HAL "OpenCV_HAL")
688 if(NOT ";${OpenCV_HAL};" MATCHES ";openvx;")
689 set(OpenCV_HAL "openvx;${OpenCV_HAL}")
694 ocv_debug_message(STATUS "Enable carotene acceleration")
695 if(NOT ";${OpenCV_HAL};" MATCHES ";carotene;")
696 set(OpenCV_HAL "carotene;${OpenCV_HAL}")
700 foreach(hal ${OpenCV_HAL})
701 if(hal STREQUAL "carotene")
702 add_subdirectory(3rdparty/carotene/hal)
703 ocv_hal_register(CAROTENE_HAL_LIBRARIES CAROTENE_HAL_HEADERS CAROTENE_HAL_INCLUDE_DIRS)
704 list(APPEND OpenCV_USED_HAL "carotene (ver ${CAROTENE_HAL_VERSION})")
705 elseif(hal STREQUAL "openvx")
706 add_subdirectory(3rdparty/openvx)
707 ocv_hal_register(OPENVX_HAL_LIBRARIES OPENVX_HAL_HEADERS OPENVX_HAL_INCLUDE_DIRS)
708 list(APPEND OpenCV_USED_HAL "openvx (ver ${OPENVX_HAL_VERSION})")
710 ocv_debug_message(STATUS "OpenCV HAL: ${hal} ...")
711 ocv_clear_vars(OpenCV_HAL_LIBRARIES OpenCV_HAL_HEADERS OpenCV_HAL_INCLUDE_DIRS)
712 find_package(${hal} NO_MODULE QUIET)
714 ocv_hal_register(OpenCV_HAL_LIBRARIES OpenCV_HAL_HEADERS OpenCV_HAL_INCLUDE_DIRS)
715 list(APPEND OpenCV_USED_HAL "${hal} (ver ${${hal}_VERSION})")
719 configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/custom_hal.hpp.in" "${CMAKE_BINARY_DIR}/custom_hal.hpp" @ONLY)
723 # ----------------------------------------------------------------------------
724 # Add CUDA libraries (needed for apps/tools, samples)
725 # ----------------------------------------------------------------------------
727 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY})
729 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CUDA_cublas_LIBRARY})
732 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CUDA_cufft_LIBRARY})
734 foreach(p ${CUDA_LIBS_PATH})
735 if(MSVC AND CMAKE_GENERATOR MATCHES "Ninja|JOM")
736 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CMAKE_LIBRARY_PATH_FLAG}"${p}")
738 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CMAKE_LIBRARY_PATH_FLAG}${p})
744 # ----------------------------------------------------------------------------
746 # ----------------------------------------------------------------------------
748 include(cmake/OpenCVDetectTrace.cmake)
752 # ----------------------------------------------------------------------------
754 # ----------------------------------------------------------------------------
755 if(ENABLE_SOLUTION_FOLDERS)
756 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
757 set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMakeTargets")
760 # Extra OpenCV targets: uninstall, package_source, perf, etc.
761 include(cmake/OpenCVExtraTargets.cmake)
764 # ----------------------------------------------------------------------------
765 # Process subdirectories
766 # ----------------------------------------------------------------------------
768 # opencv.hpp and legacy headers
769 add_subdirectory(include)
772 add_subdirectory(modules)
774 # Generate targets for documentation
775 add_subdirectory(doc)
777 # various data that is used by cv libraries and/or demo applications.
778 add_subdirectory(data)
781 if(BUILD_opencv_apps)
782 add_subdirectory(apps)
786 if(BUILD_EXAMPLES OR BUILD_ANDROID_EXAMPLES OR INSTALL_PYTHON_EXAMPLES)
787 add_subdirectory(samples)
791 add_subdirectory(platforms/android/service)
794 # ----------------------------------------------------------------------------
795 # Finalization: generate configuration-based files
796 # ----------------------------------------------------------------------------
798 # Generate platform-dependent and configuration-dependent headers
799 include(cmake/OpenCVGenHeaders.cmake)
801 # Generate opencv.pc for pkg-config command
802 if(NOT OPENCV_SKIP_PKGCONFIG_GENERATION)
803 include(cmake/OpenCVGenPkgconfig.cmake)
806 # Generate OpenCV.mk for ndk-build (Android build tool)
807 include(cmake/OpenCVGenAndroidMK.cmake)
809 # Generate OpenCVConfig.cmake and OpenCVConfig-version.cmake for cmake projects
810 include(cmake/OpenCVGenConfig.cmake)
812 # Generate Info.plist for the IOS framework
814 include(cmake/OpenCVGenInfoPlist.cmake)
817 # Generate ABI descriptor
818 include(cmake/OpenCVGenABI.cmake)
820 # Generate environment setup file
821 if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH)
823 get_filename_component(TEST_PATH ${OPENCV_TEST_INSTALL_PATH} DIRECTORY)
824 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/opencv_run_all_tests_android.sh.in"
825 "${CMAKE_BINARY_DIR}/unix-install/opencv_run_all_tests.sh" @ONLY)
826 install(PROGRAMS "${CMAKE_BINARY_DIR}/unix-install/opencv_run_all_tests.sh"
827 DESTINATION ./ COMPONENT tests)
829 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/opencv_run_all_tests_windows.cmd.in"
830 "${CMAKE_BINARY_DIR}/win-install/opencv_run_all_tests.cmd" @ONLY)
831 install(PROGRAMS "${CMAKE_BINARY_DIR}/win-install/opencv_run_all_tests.cmd"
832 DESTINATION ${OPENCV_TEST_INSTALL_PATH} COMPONENT tests)
834 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/opencv_run_all_tests_unix.sh.in"
835 "${CMAKE_BINARY_DIR}/unix-install/opencv_run_all_tests.sh" @ONLY)
836 install(PROGRAMS "${CMAKE_BINARY_DIR}/unix-install/opencv_run_all_tests.sh"
837 DESTINATION ${OPENCV_TEST_INSTALL_PATH} COMPONENT tests)
841 if(NOT OPENCV_README_FILE)
843 set(OPENCV_README_FILE ${CMAKE_CURRENT_SOURCE_DIR}/platforms/android/README.android)
847 if(NOT OPENCV_LICENSE_FILE)
848 set(OPENCV_LICENSE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
851 # for UNIX it does not make sense as LICENSE and readme will be part of the package automatically
852 if(ANDROID OR NOT UNIX)
853 install(FILES ${OPENCV_LICENSE_FILE}
854 PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
855 DESTINATION ./ COMPONENT libs)
856 if(OPENCV_README_FILE)
857 install(FILES ${OPENCV_README_FILE}
858 PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
859 DESTINATION ./ COMPONENT libs)
863 # ----------------------------------------------------------------------------
865 # ----------------------------------------------------------------------------
867 status("General configuration for OpenCV ${OPENCV_VERSION} =====================================")
868 if(OPENCV_VCSVERSION)
869 status(" Version control:" ${OPENCV_VCSVERSION})
871 if(OPENCV_EXTRA_MODULES_PATH AND NOT BUILD_INFO_SKIP_EXTRA_MODULES)
872 set(__dump_extra_header OFF)
873 foreach(p ${OPENCV_EXTRA_MODULES_PATH})
875 if(NOT __dump_extra_header)
876 set(__dump_extra_header ON)
878 status(" Extra modules:")
882 set(EXTRA_MODULES_VCSVERSION "unknown")
884 execute_process(COMMAND "${GIT_EXECUTABLE}" describe --tags --always --dirty --match "[0-9].[0-9].[0-9]*"
885 WORKING_DIRECTORY "${p}"
886 OUTPUT_VARIABLE EXTRA_MODULES_VCSVERSION
887 RESULT_VARIABLE GIT_RESULT
889 OUTPUT_STRIP_TRAILING_WHITESPACE
891 if(NOT GIT_RESULT EQUAL 0)
892 set(EXTRA_MODULES_VCSVERSION "unknown")
895 status(" Location (extra):" ${p})
896 status(" Version control (extra):" ${EXTRA_MODULES_VCSVERSION})
899 unset(__dump_extra_header)
902 # ========================== build platform ==========================
905 if(NOT CMAKE_VERSION VERSION_LESS 2.8.11 AND NOT BUILD_INFO_SKIP_TIMESTAMP)
906 string(TIMESTAMP TIMESTAMP "" UTC)
908 status(" Timestamp:" ${TIMESTAMP})
911 status(" Host:" ${CMAKE_HOST_SYSTEM_NAME} ${CMAKE_HOST_SYSTEM_VERSION} ${CMAKE_HOST_SYSTEM_PROCESSOR})
912 if(CMAKE_CROSSCOMPILING)
913 status(" Target:" ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR})
915 status(" CMake:" ${CMAKE_VERSION})
916 status(" CMake generator:" ${CMAKE_GENERATOR})
917 status(" CMake build tool:" ${CMAKE_BUILD_TOOL})
919 status(" MSVC:" ${MSVC_VERSION})
921 if(CMAKE_GENERATOR MATCHES Xcode)
922 status(" Xcode:" ${XCODE_VERSION})
924 if(NOT CMAKE_GENERATOR MATCHES "Xcode|Visual Studio")
925 status(" Configuration:" ${CMAKE_BUILD_TYPE})
929 # ========================= CPU code generation mode =========================
931 status(" CPU/HW features:")
932 status(" Baseline:" "${CPU_BASELINE_FINAL}")
933 if(NOT CPU_BASELINE STREQUAL CPU_BASELINE_FINAL)
934 status(" requested:" "${CPU_BASELINE}")
936 if(CPU_BASELINE_REQUIRE)
937 status(" required:" "${CPU_BASELINE_REQUIRE}")
939 if(CPU_BASELINE_DISABLE)
940 status(" disabled:" "${CPU_BASELINE_DISABLE}")
942 if(CPU_DISPATCH_FINAL OR CPU_DISPATCH)
943 status(" Dispatched code generation:" "${CPU_DISPATCH_FINAL}")
944 if(NOT CPU_DISPATCH STREQUAL CPU_DISPATCH_FINAL)
945 status(" requested:" "${CPU_DISPATCH}")
947 if(CPU_DISPATCH_REQUIRE)
948 status(" required:" "${CPU_DISPATCH_REQUIRE}")
950 foreach(OPT ${CPU_DISPATCH_FINAL})
951 status(" ${OPT} (${CPU_${OPT}_USAGE_COUNT} files):" "+ ${CPU_DISPATCH_${OPT}_INCLUDED}")
955 # ========================== C/C++ options ==========================
956 if(CMAKE_CXX_COMPILER_VERSION)
957 set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} (ver ${CMAKE_CXX_COMPILER_VERSION})")
958 elseif(CMAKE_COMPILER_IS_CLANGCXX)
959 set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} (ver ${CMAKE_CLANG_REGEX_VERSION})")
960 elseif(CMAKE_COMPILER_IS_GNUCXX)
961 set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} (ver ${CMAKE_GCC_REGEX_VERSION})")
963 set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1}")
965 string(STRIP "${OPENCV_COMPILER_STR}" OPENCV_COMPILER_STR)
969 status(" Built as dynamic libs?:" BUILD_SHARED_LIBS THEN YES ELSE NO)
970 if(ENABLE_CXX11 OR HAVE_CXX11)
971 status(" C++11:" HAVE_CXX11 THEN YES ELSE NO)
973 status(" C++ Compiler:" ${OPENCV_COMPILER_STR})
974 status(" C++ flags (Release):" ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE})
975 status(" C++ flags (Debug):" ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG})
976 status(" C Compiler:" ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1})
977 status(" C flags (Release):" ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_RELEASE})
978 status(" C flags (Debug):" ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_DEBUG})
980 status(" Linker flags (Release):" ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_RELEASE})
981 status(" Linker flags (Debug):" ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_DEBUG})
983 status(" Linker flags (Release):" ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_RELEASE})
984 status(" Linker flags (Debug):" ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_DEBUG})
986 status(" ccache:" CMAKE_COMPILER_IS_CCACHE THEN YES ELSE NO)
987 status(" Precompiled headers:" PCHSupport_FOUND AND ENABLE_PRECOMPILED_HEADERS THEN YES ELSE NO)
989 # ========================== Dependencies ============================
990 ocv_get_all_libs(deps_modules deps_extra deps_3rdparty)
991 status(" Extra dependencies:" ${deps_extra})
992 status(" 3rdparty dependencies:" ${deps_3rdparty})
994 # ========================== OpenCV modules ==========================
996 status(" OpenCV modules:")
997 string(REPLACE "opencv_" "" OPENCV_MODULES_BUILD_ST "${OPENCV_MODULES_BUILD}")
998 string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_USER_ST "${OPENCV_MODULES_DISABLED_USER}")
999 string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_FORCE_ST "${OPENCV_MODULES_DISABLED_FORCE}")
1000 set(OPENCV_MODULES_DISABLED_AUTO_ST "")
1001 foreach(m ${OPENCV_MODULES_DISABLED_AUTO})
1003 foreach(d ${OPENCV_MODULE_${m}_DEPS})
1004 if(d MATCHES "^opencv_" AND NOT HAVE_${d})
1005 list(APPEND __mdeps ${d})
1009 list(APPEND OPENCV_MODULES_DISABLED_AUTO_ST "${m}(deps: ${__mdeps})")
1011 list(APPEND OPENCV_MODULES_DISABLED_AUTO_ST "${m}")
1014 string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_AUTO_ST "${OPENCV_MODULES_DISABLED_AUTO_ST}")
1016 status(" To be built:" OPENCV_MODULES_BUILD THEN ${OPENCV_MODULES_BUILD_ST} ELSE "-")
1017 status(" Disabled:" OPENCV_MODULES_DISABLED_USER THEN ${OPENCV_MODULES_DISABLED_USER_ST} ELSE "-")
1018 status(" Disabled by dependency:" OPENCV_MODULES_DISABLED_AUTO THEN ${OPENCV_MODULES_DISABLED_AUTO_ST} ELSE "-")
1019 status(" Unavailable:" OPENCV_MODULES_DISABLED_FORCE THEN ${OPENCV_MODULES_DISABLED_FORCE_ST} ELSE "-")
1021 if(OPENCV_ENABLE_NONFREE)
1023 status(" Non-free algorithms are enabled")
1026 # ========================== Android details ==========================
1029 status(" Android: ")
1030 status(" Android ABI:" ${ANDROID_ABI})
1031 status(" STL type:" ${ANDROID_STL})
1032 status(" Native API level:" android-${ANDROID_NATIVE_API_LEVEL})
1033 android_get_compatible_target(android_sdk_target_status ${ANDROID_NATIVE_API_LEVEL} ${ANDROID_SDK_TARGET} 11)
1034 status(" SDK target:" "${android_sdk_target_status}")
1035 if(BUILD_WITH_ANDROID_NDK)
1036 status(" Android NDK:" "${ANDROID_NDK} (toolchain: ${ANDROID_TOOLCHAIN_NAME})")
1037 elseif(BUILD_WITH_STANDALONE_TOOLCHAIN)
1038 status(" Android toolchain:" "${ANDROID_STANDALONE_TOOLCHAIN}")
1040 status(" android tool:" ANDROID_EXECUTABLE THEN "${ANDROID_EXECUTABLE} (${ANDROID_TOOLS_Pkg_Desc})" ELSE NO)
1041 status(" Google Play manager:" BUILD_ANDROID_SERVICE THEN YES ELSE NO)
1042 status(" Android examples:" BUILD_ANDROID_EXAMPLES AND CAN_BUILD_ANDROID_PROJECTS THEN YES ELSE NO)
1045 # ================== Windows RT features ==================
1048 status(" Windows RT support:" WINRT THEN YES ELSE NO)
1050 status(" Building for Microsoft platform: " ${CMAKE_SYSTEM_NAME})
1051 status(" Building for architectures: " ${CMAKE_VS_EFFECTIVE_PLATFORMS})
1052 status(" Building for version: " ${CMAKE_SYSTEM_VERSION})
1053 if (DEFINED ENABLE_WINRT_MODE_NATIVE)
1054 status(" Building for C++ without CX extensions")
1059 # ========================== GUI ==========================
1064 status(" QT 5.x:" HAVE_QT THEN "YES (ver ${Qt5Core_VERSION_STRING})" ELSE NO)
1065 status(" QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${Qt5OpenGL_LIBRARIES} ${Qt5OpenGL_VERSION_STRING})" ELSE NO)
1067 status(" QT 4.x:" HAVE_QT THEN "YES (ver ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH} ${QT_EDITION})" ELSE NO)
1068 status(" QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${QT_QTOPENGL_LIBRARY})" ELSE NO)
1073 if(DEFINED WITH_WIN32UI)
1074 status(" Win32 UI:" HAVE_WIN32UI THEN YES ELSE NO)
1078 status(" Carbon:" YES)
1080 status(" Cocoa:" YES)
1084 status(" GTK+ 3.x:" HAVE_GTK THEN "YES (ver ${ALIASOF_gtk+-3.0_VERSION})" ELSE NO)
1086 status(" GTK+ 2.x:" HAVE_GTK THEN "YES (ver ${ALIASOF_gtk+-2.0_VERSION})" ELSE NO)
1090 status(" GThread :" HAVE_GTHREAD THEN "YES (ver ${ALIASOF_gthread-2.0_VERSION})" ELSE NO)
1091 status(" GtkGlExt:" HAVE_GTKGLEXT THEN "YES (ver ${ALIASOF_gtkglext-1.0_VERSION})" ELSE NO)
1096 status(" OpenGL support:" HAVE_OPENGL THEN "YES (${OPENGL_LIBRARIES})" ELSE NO)
1097 status(" VTK support:" HAVE_VTK THEN "YES (ver ${VTK_VERSION})" ELSE NO)
1099 # ========================== MEDIA IO ==========================
1101 status(" Media I/O: ")
1102 status(" ZLib:" BUILD_ZLIB THEN "build (ver ${ZLIB_VERSION_STRING})" ELSE "${ZLIB_LIBRARIES} (ver ${ZLIB_VERSION_STRING})")
1105 status(" JPEG:" JPEG_FOUND THEN "${JPEG_LIBRARY} (ver ${JPEG_LIB_VERSION})" ELSE "build (ver ${JPEG_LIB_VERSION})")
1107 status(" JPEG:" "NO")
1111 status(" WEBP:" WEBP_FOUND THEN "${WEBP_LIBRARY} (ver ${WEBP_VERSION})" ELSE "build (ver ${WEBP_VERSION})")
1113 status(" WEBP:" "NO")
1117 status(" PNG:" PNG_FOUND THEN "${PNG_LIBRARY} (ver ${PNG_VERSION})" ELSE "build (ver ${PNG_VERSION})")
1119 status(" PNG:" "NO")
1123 if(TIFF_VERSION_STRING AND TIFF_FOUND)
1124 status(" TIFF:" "${TIFF_LIBRARY} (ver ${TIFF_VERSION} - ${TIFF_VERSION_STRING})")
1126 status(" TIFF:" TIFF_FOUND THEN "${TIFF_LIBRARY} (ver ${TIFF_VERSION})" ELSE "build (ver ${TIFF_VERSION} - ${TIFF_VERSION_STRING})")
1129 status(" TIFF:" "NO")
1132 status(" JPEG 2000:" JASPER_FOUND THEN "${JASPER_LIBRARY} (ver ${JASPER_VERSION_STRING})" ELSE "build (ver ${JASPER_VERSION_STRING})")
1134 status(" JPEG 2000:" "NO")
1137 status(" OpenEXR:" OPENEXR_FOUND THEN "${OPENEXR_LIBRARIES} (ver ${OPENEXR_VERSION})" ELSE "build (ver ${OPENEXR_VERSION})")
1139 status(" OpenEXR:" "NO")
1143 status(" GDAL:" GDAL_FOUND THEN "${GDAL_LIBRARY}" ELSE "NO")
1145 status(" GDAL:" "NO")
1149 status(" GDCM:" GDCM_FOUND THEN "YES (ver ${GDCM_VERSION})" ELSE "NO")
1151 status(" GDCM:" "NO")
1154 # ========================== VIDEO IO ==========================
1156 status(" Video I/O:")
1158 if (DEFINED WITH_VFW)
1159 status(" Video for Windows:" HAVE_VFW THEN YES ELSE NO)
1160 endif(DEFINED WITH_VFW)
1162 if(DEFINED WITH_1394)
1163 status(" DC1394 1.x:" HAVE_DC1394 THEN "YES (ver ${ALIASOF_libdc1394_VERSION})" ELSE NO)
1164 status(" DC1394 2.x:" HAVE_DC1394_2 THEN "YES (ver ${ALIASOF_libdc1394-2_VERSION})" ELSE NO)
1165 endif(DEFINED WITH_1394)
1167 if(DEFINED WITH_FFMPEG OR HAVE_FFMPEG)
1169 status(" FFMPEG:" HAVE_FFMPEG THEN "YES (prebuilt binaries)" ELSE NO)
1171 status(" FFMPEG:" HAVE_FFMPEG THEN YES ELSE NO)
1173 status(" avcodec:" FFMPEG_libavcodec_FOUND THEN "YES (ver ${FFMPEG_libavcodec_VERSION})" ELSE NO)
1174 status(" avformat:" FFMPEG_libavformat_FOUND THEN "YES (ver ${FFMPEG_libavformat_VERSION})" ELSE NO)
1175 status(" avutil:" FFMPEG_libavutil_FOUND THEN "YES (ver ${FFMPEG_libavutil_VERSION})" ELSE NO)
1176 status(" swscale:" FFMPEG_libswscale_FOUND THEN "YES (ver ${FFMPEG_libswscale_VERSION})" ELSE NO)
1177 status(" avresample:" FFMPEG_libavresample_FOUND THEN "YES (ver ${FFMPEG_libavresample_VERSION})" ELSE NO)
1180 if(DEFINED WITH_GSTREAMER)
1181 status(" GStreamer:" HAVE_GSTREAMER THEN "" ELSE NO)
1183 status(" base:" "YES (ver ${GSTREAMER_BASE_VERSION})")
1184 status(" video:" "YES (ver ${GSTREAMER_VIDEO_VERSION})")
1185 status(" app:" "YES (ver ${GSTREAMER_APP_VERSION})")
1186 status(" riff:" "YES (ver ${GSTREAMER_RIFF_VERSION})")
1187 status(" pbutils:" "YES (ver ${GSTREAMER_PBUTILS_VERSION})")
1188 endif(HAVE_GSTREAMER)
1189 endif(DEFINED WITH_GSTREAMER)
1191 if(DEFINED WITH_OPENNI)
1192 status(" OpenNI:" HAVE_OPENNI THEN "YES (ver ${OPENNI_VERSION_STRING}, build ${OPENNI_VERSION_BUILD})"
1194 status(" OpenNI PrimeSensor Modules:" HAVE_OPENNI_PRIME_SENSOR_MODULE
1195 THEN "YES (${OPENNI_PRIME_SENSOR_MODULE})" ELSE NO)
1196 endif(DEFINED WITH_OPENNI)
1198 if(DEFINED WITH_OPENNI2)
1199 status(" OpenNI2:" HAVE_OPENNI2 THEN "YES (ver ${OPENNI2_VERSION_STRING}, build ${OPENNI2_VERSION_BUILD})"
1201 endif(DEFINED WITH_OPENNI2)
1203 if(DEFINED WITH_PVAPI)
1204 status(" PvAPI:" HAVE_PVAPI THEN YES ELSE NO)
1205 endif(DEFINED WITH_PVAPI)
1207 if(DEFINED WITH_GIGEAPI)
1208 status(" GigEVisionSDK:" HAVE_GIGE_API THEN YES ELSE NO)
1209 endif(DEFINED WITH_GIGEAPI)
1211 if(DEFINED WITH_ARAVIS)
1212 status(" Aravis SDK:" HAVE_ARAVIS_API THEN "YES (${ARAVIS_LIBRARIES})" ELSE NO)
1213 endif(DEFINED WITH_ARAVIS)
1216 status(" AVFoundation:" HAVE_AVFOUNDATION THEN YES ELSE NO)
1217 if(WITH_QUICKTIME OR HAVE_QUICKTIME)
1218 status(" QuickTime:" HAVE_QUICKTIME THEN YES ELSE NO)
1220 if(WITH_QTKIT OR HAVE_QTKIT)
1221 status(" QTKit:" HAVE_QTKIT THEN "YES (deprecated)" ELSE NO)
1223 endif(DEFINED APPLE)
1225 if(DEFINED WITH_UNICAP)
1226 status(" UniCap:" HAVE_UNICAP THEN "YES (ver ${ALIASOF_libunicap_VERSION})" ELSE NO)
1227 status(" UniCap ucil:" HAVE_UNICAP_UCIL THEN "YES (ver ${ALIASOF_libucil_VERSION})" ELSE NO)
1228 endif(DEFINED WITH_UNICAP)
1230 if(DEFINED WITH_V4L)
1232 set(HAVE_CAMV4L_STR "YES")
1234 set(HAVE_CAMV4L_STR "NO")
1237 set(HAVE_CAMV4L2_STR "YES")
1238 elseif(HAVE_VIDEOIO)
1239 set(HAVE_CAMV4L2_STR "YES(videoio)")
1241 set(HAVE_CAMV4L2_STR "NO")
1243 status(" V4L/V4L2:" HAVE_LIBV4L
1244 THEN "Using libv4l1 (ver ${ALIASOF_libv4l1_VERSION}) / libv4l2 (ver ${ALIASOF_libv4l2_VERSION})"
1245 ELSE "${HAVE_CAMV4L_STR}/${HAVE_CAMV4L2_STR}")
1246 endif(DEFINED WITH_V4L)
1248 if(DEFINED WITH_DSHOW)
1249 status(" DirectShow:" HAVE_DSHOW THEN YES ELSE NO)
1250 endif(DEFINED WITH_DSHOW)
1252 if(DEFINED WITH_MSMF)
1253 status(" Media Foundation:" HAVE_MSMF THEN YES ELSE NO)
1254 endif(DEFINED WITH_MSMF)
1256 if(DEFINED WITH_XIMEA)
1257 status(" XIMEA:" HAVE_XIMEA THEN YES ELSE NO)
1258 endif(DEFINED WITH_XIMEA)
1260 if(DEFINED WITH_XINE)
1261 status(" Xine:" HAVE_XINE THEN "YES (ver ${ALIASOF_libxine_VERSION})" ELSE NO)
1262 endif(DEFINED WITH_XINE)
1264 if(DEFINED WITH_INTELPERC)
1265 status(" Intel PerC:" HAVE_INTELPERC THEN "YES" ELSE NO)
1266 endif(DEFINED WITH_INTELPERC)
1268 if(DEFINED WITH_MFX)
1269 status(" Intel Media SDK:" HAVE_MFX THEN "YES (${MFX_LIBRARY})" ELSE NO)
1272 if(DEFINED WITH_GPHOTO2)
1273 status(" gPhoto2:" HAVE_GPHOTO2 THEN "YES" ELSE NO)
1274 endif(DEFINED WITH_GPHOTO2)
1277 # Order is similar to CV_PARALLEL_FRAMEWORK in core/src/parallel.cpp
1278 ocv_clear_vars(CV_PARALLEL_FRAMEWORK)
1280 set(CV_PARALLEL_FRAMEWORK "TBB (ver ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} interface ${TBB_INTERFACE_VERSION})")
1281 elseif(HAVE_CSTRIPES)
1282 set(CV_PARALLEL_FRAMEWORK "C=")
1284 set(CV_PARALLEL_FRAMEWORK "OpenMP")
1286 set(CV_PARALLEL_FRAMEWORK "GCD")
1287 elseif(WINRT OR HAVE_CONCURRENCY)
1288 set(CV_PARALLEL_FRAMEWORK "Concurrency")
1289 elseif(HAVE_PTHREADS_PF)
1290 set(CV_PARALLEL_FRAMEWORK "pthreads")
1292 set(CV_PARALLEL_FRAMEWORK "none")
1295 status(" Parallel framework:" TRUE THEN "${CV_PARALLEL_FRAMEWORK}" ELSE NO)
1297 if(CV_TRACE OR OPENCV_TRACE)
1300 set(__msg "with Intel ITT")
1303 status(" Trace: " OPENCV_TRACE THEN "YES (${__msg})" ELSE NO)
1306 # ========================== Other third-party libraries ==========================
1308 status(" Other third-party libraries:")
1310 if(WITH_IPP AND HAVE_IPP)
1311 status(" Use Intel IPP:" "${IPP_VERSION_STR} [${IPP_VERSION_MAJOR}.${IPP_VERSION_MINOR}.${IPP_VERSION_BUILD}]")
1312 status(" at:" "${IPP_ROOT_DIR}")
1313 if(NOT HAVE_IPP_ICV)
1314 status(" linked:" BUILD_WITH_DYNAMIC_IPP THEN "dynamic" ELSE "static")
1318 status(" Use Intel IPP IW:" "sources (${IW_VERSION_MAJOR}.${IW_VERSION_MINOR}.${IW_VERSION_UPDATE})")
1320 status(" Use Intel IPP IW:" "binaries (${IW_VERSION_MAJOR}.${IW_VERSION_MINOR}.${IW_VERSION_UPDATE})")
1322 status(" at:" "${IPP_IW_PATH}")
1324 status(" Use Intel IPP IW:" NO)
1327 status(" Use Intel IPP:" WITH_IPP AND NOT HAVE_IPP THEN "IPP not found or implicitly disabled" ELSE NO)
1328 status(" Use Intel IPP IW:" WITH_IPP AND NOT HAVE_IPP AND HAVE_IPP_IW THEN "IPP not found or implicitly disabled" ELSE NO)
1332 status(" Use VA:" HAVE_VA THEN "YES" ELSE NO)
1333 endif(DEFINED WITH_VA)
1335 if(DEFINED WITH_VA_INTEL)
1336 status(" Use Intel VA-API/OpenCL:" HAVE_VA_INTEL THEN "YES (MSDK: ${VA_INTEL_MSDK_ROOT} OpenCL: ${VA_INTEL_IOCL_ROOT})" ELSE NO)
1337 endif(DEFINED WITH_VA_INTEL)
1339 if(DEFINED WITH_LAPACK)
1340 status(" Use Lapack:" HAVE_LAPACK THEN "YES (${LAPACK_LIBRARIES})" ELSE NO)
1341 endif(DEFINED WITH_LAPACK)
1343 status(" Use Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO)
1344 status(" Use Cuda:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING})" ELSE NO)
1345 status(" Use OpenCL:" HAVE_OPENCL THEN YES ELSE NO)
1346 if(WITH_HALIDE OR HAVE_HALIDE)
1347 status(" Use Halide:" HAVE_HALIDE THEN "YES (${HALIDE_LIBRARIES} ${HALIDE_INCLUDE_DIRS})" ELSE NO)
1349 status(" Use OpenVX:" HAVE_OPENVX THEN "YES (${OPENVX_LIBRARIES})" ELSE "NO")
1350 status(" Use custom HAL:" OpenCV_USED_HAL THEN "YES (${OpenCV_USED_HAL})" ELSE "NO")
1354 status(" NVIDIA CUDA")
1356 status(" Use CUFFT:" HAVE_CUFFT THEN YES ELSE NO)
1357 status(" Use CUBLAS:" HAVE_CUBLAS THEN YES ELSE NO)
1358 status(" USE NVCUVID:" HAVE_NVCUVID THEN YES ELSE NO)
1359 status(" NVIDIA GPU arch:" ${OPENCV_CUDA_ARCH_BIN})
1360 status(" NVIDIA PTX archs:" ${OPENCV_CUDA_ARCH_PTX})
1361 status(" Use fast math:" CUDA_FAST_MATH THEN YES ELSE NO)
1366 if(HAVE_OPENCL_STATIC)
1367 set(__opencl_type "<Link with OpenCL library>")
1369 set(__opencl_type "<Dynamic loading of OpenCL library>")
1371 status(" OpenCL:" ${__opencl_type})
1372 if(OPENCL_INCLUDE_DIRS)
1373 status(" Include path:" ${OPENCL_INCLUDE_DIRS})
1375 if(OPENCL_LIBRARIES)
1377 foreach(l ${OPENCL_LIBRARIES})
1379 get_target_property(p ${l} LOCATION)
1380 if(p MATCHES NOTFOUND)
1381 list(APPEND __libs "${l}")
1383 list(APPEND __libs "${p}")
1386 list(APPEND __libs "${l}")
1389 status(" Link libraries:" ${__libs})
1391 status(" Use AMDFFT:" HAVE_CLAMDFFT THEN YES ELSE NO)
1392 status(" Use AMDBLAS:" HAVE_CLAMDBLAS THEN YES ELSE NO)
1395 # ========================== python ==========================
1397 status(" Python 2:")
1398 status(" Interpreter:" PYTHON2INTERP_FOUND THEN "${PYTHON2_EXECUTABLE} (ver ${PYTHON2_VERSION_STRING})" ELSE NO)
1399 if(BUILD_opencv_python2)
1400 if(PYTHON2LIBS_VERSION_STRING)
1401 status(" Libraries:" HAVE_opencv_python2 THEN "${PYTHON2_LIBRARIES} (ver ${PYTHON2LIBS_VERSION_STRING})" ELSE NO)
1403 status(" Libraries:" HAVE_opencv_python2 THEN "${PYTHON2_LIBRARIES}" ELSE NO)
1405 status(" numpy:" PYTHON2_NUMPY_INCLUDE_DIRS THEN "${PYTHON2_NUMPY_INCLUDE_DIRS} (ver ${PYTHON2_NUMPY_VERSION})" ELSE "NO (Python wrappers can not be generated)")
1406 status(" packages path:" PYTHON2_EXECUTABLE THEN "${PYTHON2_PACKAGES_PATH}" ELSE "-")
1410 status(" Python 3:")
1411 status(" Interpreter:" PYTHON3INTERP_FOUND THEN "${PYTHON3_EXECUTABLE} (ver ${PYTHON3_VERSION_STRING})" ELSE NO)
1412 if(BUILD_opencv_python3)
1413 if(PYTHON3LIBS_VERSION_STRING)
1414 status(" Libraries:" HAVE_opencv_python3 THEN "${PYTHON3_LIBRARIES} (ver ${PYTHON3LIBS_VERSION_STRING})" ELSE NO)
1416 status(" Libraries:" HAVE_opencv_python3 THEN "${PYTHON3_LIBRARIES}" ELSE NO)
1418 status(" numpy:" PYTHON3_NUMPY_INCLUDE_DIRS THEN "${PYTHON3_NUMPY_INCLUDE_DIRS} (ver ${PYTHON3_NUMPY_VERSION})" ELSE "NO (Python3 wrappers can not be generated)")
1419 status(" packages path:" PYTHON3_EXECUTABLE THEN "${PYTHON3_PACKAGES_PATH}" ELSE "-")
1423 status(" Python (for build):" PYTHON_DEFAULT_AVAILABLE THEN "${PYTHON_DEFAULT_EXECUTABLE}" ELSE NO)
1425 # ========================== java ==========================
1428 status(" ant:" ANT_EXECUTABLE THEN "${ANT_EXECUTABLE} (ver ${ANT_VERSION})" ELSE NO)
1430 status(" JNI:" JNI_INCLUDE_DIRS THEN "${JNI_INCLUDE_DIRS}" ELSE NO)
1432 status(" Java wrappers:" HAVE_opencv_java THEN YES ELSE NO)
1433 status(" Java tests:" BUILD_TESTS AND opencv_test_java_BINARY_DIR THEN YES ELSE NO)
1435 # ========================= matlab =========================
1439 status(" mex:" MATLAB_MEX_SCRIPT THEN "${MATLAB_MEX_SCRIPT}" ELSE NO)
1440 status(" Compiler/generator:" MEX_WORKS THEN "Working" ELSE "Not working (bindings will not be generated)")
1442 status(" Matlab:" WITH_MATLAB AND NOT MATLAB_FOUND THEN "Matlab not found or implicitly disabled" ELSE NO)
1445 # ========================== documentation ==========================
1448 status(" Documentation:")
1449 status(" Doxygen:" DOXYGEN_FOUND THEN "${DOXYGEN_EXECUTABLE} (ver ${DOXYGEN_VERSION})" ELSE NO)
1452 # ========================== samples and tests ==========================
1454 status(" Tests and samples:")
1455 status(" Tests:" BUILD_TESTS AND HAVE_opencv_ts THEN YES ELSE NO)
1456 status(" Performance tests:" BUILD_PERF_TESTS AND HAVE_opencv_ts THEN YES ELSE NO)
1457 status(" C/C++ Examples:" BUILD_EXAMPLES THEN YES ELSE NO)
1459 # ========================== auxiliary ==========================
1461 status(" Install path:" "${CMAKE_INSTALL_PREFIX}")
1463 status(" cvconfig.h is in:" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}")
1464 status("-----------------------------------------------------------------")
1467 ocv_finalize_status()
1469 # ----------------------------------------------------------------------------
1471 # ----------------------------------------------------------------------------
1473 include(cmake/OpenCVPackaging.cmake)
1475 # This should be the last command
1476 ocv_cmake_dump_vars("" TOFILE "CMakeVars.txt")
1477 ocv_cmake_eval(DEBUG_POST ONCE)