1 | # ----------------------------------------------------------------------------
|
2 | # Root CMake file for OpenCV
|
3 | #
|
4 | # From the off-tree build directory, invoke:
|
5 | # $ cmake <PATH_TO_OPENCV_ROOT>
|
6 | #
|
7 | #
|
8 | # - OCT-2008: Initial version <[email protected]>
|
9 | #
|
10 | # ----------------------------------------------------------------------------
|
11 |
|
12 | set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
|
13 |
|
14 | # --------------------------------------------------------------
|
15 | # Indicate CMake 2.7 and above that we don't want to mix relative
|
16 | # and absolute paths in linker lib lists.
|
17 | # Run "cmake --help-policy CMP0003" for more information.
|
18 | # --------------------------------------------------------------
|
19 | if(COMMAND cmake_policy)
|
20 | cmake_policy(SET CMP0003 NEW)
|
21 | endif()
|
22 |
|
23 | # Following block can broke build in case of cross-compilng
|
24 | # but CMAKE_CROSSCOMPILING variable will be set only on project(OpenCV) command
|
25 | # so we will try to detect crosscompiling by presense of CMAKE_TOOLCHAIN_FILE
|
26 | if(NOT CMAKE_TOOLCHAIN_FILE)
|
27 | # it _must_ go before project(OpenCV) in order to work
|
28 | if(WIN32)
|
29 | set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory")
|
30 | else()
|
31 | set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")
|
32 | endif()
|
33 |
|
34 | if(MSVC)
|
35 | set(CMAKE_USE_RELATIVE_PATHS ON CACHE INTERNAL "" FORCE)
|
36 | endif()
|
37 | else(NOT CMAKE_TOOLCHAIN_FILE)
|
38 | #Android: set output folder to ${CMAKE_BINARY_DIR}
|
39 | set( LIBRARY_OUTPUT_PATH_ROOT ${CMAKE_BINARY_DIR} CACHE PATH "root for library output, set this to change where android libs are compiled to" )
|
40 | # any crosscompiling
|
41 | set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory")
|
42 | endif(NOT CMAKE_TOOLCHAIN_FILE)
|
43 |
|
44 | # --------------------------------------------------------------
|
45 | # Top level OpenCV project
|
46 | # --------------------------------------------------------------
|
47 | if(CMAKE_GENERATOR MATCHES Xcode AND XCODE_VERSION VERSION_GREATER 4.3)
|
48 | cmake_minimum_required(VERSION 2.8.8)
|
49 | elseif(IOS)
|
50 | cmake_minimum_required(VERSION 2.8.0)
|
51 | else()
|
52 | cmake_minimum_required(VERSION 2.6.3)
|
53 | endif()
|
54 |
|
55 | # must go before the project command
|
56 | set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE)
|
57 | if(DEFINED CMAKE_BUILD_TYPE AND CMAKE_VERSION VERSION_GREATER "2.8")
|
58 | set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} )
|
59 | endif()
|
60 |
|
61 | project(OpenCV CXX C)
|
62 |
|
63 | include(cmake/OpenCVUtils.cmake)
|
64 |
|
65 | # ----------------------------------------------------------------------------
|
66 | # Break in case of popular CMake configuration mistakes
|
67 | # ----------------------------------------------------------------------------
|
68 | if(NOT CMAKE_SIZEOF_VOID_P GREATER 0)
|
69 | message(FATAL_ERROR "CMake fails to deterimine the bitness of target platform.
|
70 | Please check your CMake and compiler installation. If you are crosscompiling then ensure that your CMake toolchain file correctly sets the compiler details.")
|
71 | endif()
|
72 |
|
73 | # ----------------------------------------------------------------------------
|
74 | # Detect compiler and target platform architecture
|
75 | # ----------------------------------------------------------------------------
|
76 | include(cmake/OpenCVDetectCXXCompiler.cmake)
|
77 |
|
78 | # Add these standard paths to the search paths for FIND_LIBRARY
|
79 | # to find libraries from these locations first
|
80 | if(UNIX AND NOT ANDROID)
|
81 | if(X86_64 OR CMAKE_SIZEOF_VOID_P EQUAL 8)
|
82 | if(EXISTS /lib64)
|
83 | list(APPEND CMAKE_LIBRARY_PATH /lib64)
|
84 | else()
|
85 | list(APPEND CMAKE_LIBRARY_PATH /lib)
|
86 | endif()
|
87 | if(EXISTS /usr/lib64)
|
88 | list(APPEND CMAKE_LIBRARY_PATH /usr/lib64)
|
89 | else()
|
90 | list(APPEND CMAKE_LIBRARY_PATH /usr/lib)
|
91 | endif()
|
92 | elseif(X86 OR CMAKE_SIZEOF_VOID_P EQUAL 4)
|
93 | if(EXISTS /lib32)
|
94 | list(APPEND CMAKE_LIBRARY_PATH /lib32)
|
95 | else()
|
96 | list(APPEND CMAKE_LIBRARY_PATH /lib)
|
97 | endif()
|
98 | if(EXISTS /usr/lib32)
|
99 | list(APPEND CMAKE_LIBRARY_PATH /usr/lib32)
|
100 | else()
|
101 | list(APPEND CMAKE_LIBRARY_PATH /usr/lib)
|
102 | endif()
|
103 | endif()
|
104 | endif()
|
105 |
|
106 |
|
107 | # ----------------------------------------------------------------------------
|
108 | # OpenCV cmake options
|
109 | # ----------------------------------------------------------------------------
|
110 |
|
111 | # Optional 3rd party components
|
112 | # ===================================================
|
113 | OCV_OPTION(WITH_1394 "Include IEEE1394 support" ON IF (UNIX AND NOT ANDROID AND NOT IOS AND NOT CARMA) )
|
114 | OCV_OPTION(WITH_AVFOUNDATION "Use AVFoundation for Video I/O" ON IF IOS)
|
115 | OCV_OPTION(WITH_CARBON "Use Carbon for UI instead of Cocoa" OFF IF APPLE )
|
116 | OCV_OPTION(WITH_CUDA "Include NVidia Cuda Runtime support" ON IF (CMAKE_VERSION VERSION_GREATER "2.8" AND NOT ANDROID AND NOT IOS) )
|
117 | OCV_OPTION(WITH_CUFFT "Include NVidia Cuda Fast Fourier Transform (FFT) library support" ON IF (CMAKE_VERSION VERSION_GREATER "2.8" AND NOT ANDROID AND NOT IOS) )
|
118 | OCV_OPTION(WITH_CUBLAS "Include NVidia Cuda Basic Linear Algebra Subprograms (BLAS) library support" OFF IF (CMAKE_VERSION VERSION_GREATER "2.8" AND NOT ANDROID AND NOT IOS) )
|
119 | OCV_OPTION(WITH_NVCUVID "Include NVidia Video Decoding library support" OFF IF (CMAKE_VERSION VERSION_GREATER "2.8" AND NOT ANDROID AND NOT IOS AND NOT APPLE) )
|
120 | OCV_OPTION(WITH_EIGEN "Include Eigen2/Eigen3 support" ON)
|
121 | OCV_OPTION(WITH_FFMPEG "Include FFMPEG support" ON IF (NOT ANDROID AND NOT IOS))
|
122 | OCV_OPTION(WITH_GSTREAMER "Include Gstreamer support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) )
|
123 | OCV_OPTION(WITH_GTK "Include GTK support" ON IF (UNIX AND NOT APPLE AND NOT ANDROID) )
|
124 | OCV_OPTION(WITH_IMAGEIO "ImageIO support for OS X" OFF IF APPLE)
|
125 | OCV_OPTION(WITH_IPP "Include Intel IPP support" OFF IF (MSVC OR X86 OR X86_64) )
|
126 | OCV_OPTION(WITH_JASPER "Include JPEG2K support" ON IF (NOT IOS) )
|
127 | OCV_OPTION(WITH_JPEG "Include JPEG support" ON IF (NOT IOS) )
|
128 | OCV_OPTION(WITH_OPENEXR "Include ILM support via OpenEXR" ON IF (NOT IOS) )
|
129 | OCV_OPTION(WITH_OPENGL "Include OpenGL support" OFF IF (NOT ANDROID AND NOT APPLE) )
|
130 | OCV_OPTION(WITH_OPENNI "Include OpenNI support" OFF IF (NOT ANDROID AND NOT IOS) )
|
131 | OCV_OPTION(WITH_PNG "Include PNG support" ON IF (NOT IOS) )
|
132 | OCV_OPTION(WITH_PVAPI "Include Prosilica GigE support" ON IF (NOT ANDROID AND NOT IOS) )
|
133 | OCV_OPTION(WITH_GIGEAPI "Include Smartek GigE support" ON IF (NOT ANDROID AND NOT IOS) )
|
134 | OCV_OPTION(WITH_QT "Build with Qt Backend support" OFF IF (NOT ANDROID AND NOT IOS) )
|
135 | OCV_OPTION(WITH_QUICKTIME "Use QuickTime for Video I/O insted of QTKit" OFF IF APPLE )
|
136 | OCV_OPTION(WITH_TBB "Include Intel TBB support" OFF IF (NOT IOS) )
|
137 | OCV_OPTION(WITH_CSTRIPES "Include C= support" OFF IF WIN32 )
|
138 | OCV_OPTION(WITH_TIFF "Include TIFF support" ON IF (NOT IOS) )
|
139 | OCV_OPTION(WITH_UNICAP "Include Unicap support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
|
140 | OCV_OPTION(WITH_V4L "Include Video 4 Linux support" ON IF (UNIX AND NOT ANDROID) )
|
141 | OCV_OPTION(WITH_VIDEOINPUT "Build HighGUI with DirectShow support" ON IF WIN32 )
|
142 | OCV_OPTION(WITH_XIMEA "Include XIMEA cameras support" OFF IF (NOT ANDROID AND NOT APPLE) )
|
143 | OCV_OPTION(WITH_XINE "Include Xine support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
|
144 | OCV_OPTION(WITH_OPENCL "Include OpenCL Runtime support" OFF IF (NOT ANDROID AND NOT IOS AND NOT CARMA) )
|
145 | OCV_OPTION(WITH_OPENCLAMDFFT "Include AMD OpenCL FFT library support" OFF IF (NOT ANDROID AND NOT IOS AND NOT CARMA) )
|
146 | OCV_OPTION(WITH_OPENCLAMDBLAS "Include AMD OpenCL BLAS library support" OFF IF (NOT ANDROID AND NOT IOS AND NOT CARMA) )
|
147 |
|
148 |
|
149 | # OpenCV build components
|
150 | # ===================================================
|
151 | OCV_OPTION(BUILD_SHARED_LIBS "Build shared libraries (.dll/.so) instead of static ones (.lib/.a)" NOT (ANDROID OR IOS) )
|
152 | OCV_OPTION(BUILD_opencv_apps "Build utility applications (used for example to train classifiers)" (NOT ANDROID) IF (NOT IOS) )
|
153 | OCV_OPTION(BUILD_ANDROID_EXAMPLES "Build examples for Android platform" ON IF ANDROID )
|
154 | OCV_OPTION(BUILD_DOCS "Create build rules for OpenCV Documentation" ON )
|
155 | OCV_OPTION(BUILD_EXAMPLES "Build all examples" OFF )
|
156 | OCV_OPTION(BUILD_PACKAGE "Enables 'make package_source' command" ON )
|
157 | OCV_OPTION(BUILD_PERF_TESTS "Build performance tests" ON IF (NOT IOS) )
|
158 | OCV_OPTION(BUILD_TESTS "Build accuracy & regression tests" ON IF (NOT IOS) )
|
159 | OCV_OPTION(BUILD_WITH_DEBUG_INFO "Include debug info into debug libs (not MSCV only)" ON )
|
160 | OCV_OPTION(BUILD_WITH_STATIC_CRT "Enables use of staticaly linked CRT for staticaly linked OpenCV" ON IF MSVC )
|
161 | 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 )
|
162 | OCV_OPTION(BUILD_ANDROID_SERVICE "Build OpenCV Manager for Google Play" OFF IF ANDROID AND ANDROID_SOURCE_TREE )
|
163 | OCV_OPTION(BUILD_ANDROID_PACKAGE "Build platform-specific package for Google Play" OFF IF ANDROID )
|
164 |
|
165 | # 3rd party libs
|
166 | OCV_OPTION(BUILD_ZLIB "Build zlib from source" WIN32 OR APPLE OR CARMA )
|
167 | OCV_OPTION(BUILD_TIFF "Build libtiff from source" WIN32 OR ANDROID OR APPLE OR CARMA )
|
168 | OCV_OPTION(BUILD_JASPER "Build libjasper from source" WIN32 OR ANDROID OR APPLE OR CARMA )
|
169 | OCV_OPTION(BUILD_JPEG "Build libjpeg from source" WIN32 OR ANDROID OR APPLE OR CARMA )
|
170 | OCV_OPTION(BUILD_PNG "Build libpng from source" WIN32 OR ANDROID OR APPLE OR CARMA )
|
171 | OCV_OPTION(BUILD_OPENEXR "Build openexr from source" WIN32 OR ANDROID OR APPLE OR CARMA )
|
172 | OCV_OPTION(BUILD_TBB "Download and build TBB from source" ANDROID IF CMAKE_COMPILER_IS_GNUCXX )
|
173 |
|
174 | # OpenCV installation options
|
175 | # ===================================================
|
176 | OCV_OPTION(INSTALL_C_EXAMPLES "Install C examples" OFF )
|
177 | OCV_OPTION(INSTALL_PYTHON_EXAMPLES "Install Python examples" OFF )
|
178 | OCV_OPTION(INSTALL_ANDROID_EXAMPLES "Install Android examples" OFF IF ANDROID )
|
179 | OCV_OPTION(INSTALL_TO_MANGLED_PATHS "Enables mangled install paths, that help with side by side installs." OFF IF (UNIX AND NOT ANDROID AND NOT IOS AND BUILD_SHARED_LIBS) )
|
180 |
|
181 |
|
182 | # OpenCV build options
|
183 | # ===================================================
|
184 | OCV_OPTION(ENABLE_PRECOMPILED_HEADERS "Use precompiled headers" ON IF (NOT IOS) )
|
185 | OCV_OPTION(ENABLE_SOLUTION_FOLDERS "Solution folder in Visual Studio or in other IDEs" (MSVC_IDE OR CMAKE_GENERATOR MATCHES Xcode) IF (CMAKE_VERSION VERSION_GREATER "2.8.0") )
|
186 | OCV_OPTION(ENABLE_PROFILING "Enable profiling in the GCC compiler (Add flags: -g -pg)" OFF IF CMAKE_COMPILER_IS_GNUCXX )
|
187 | OCV_OPTION(ENABLE_OMIT_FRAME_POINTER "Enable -fomit-frame-pointer for GCC" ON IF CMAKE_COMPILER_IS_GNUCXX )
|
188 | OCV_OPTION(ENABLE_POWERPC "Enable PowerPC for GCC" ON IF (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_PROCESSOR MATCHES powerpc.*) )
|
189 | 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)) )
|
190 | OCV_OPTION(ENABLE_SSE "Enable SSE instructions" ON IF ((MSVC OR CMAKE_COMPILER_IS_GNUCXX) AND (X86 OR X86_64)) )
|
191 | OCV_OPTION(ENABLE_SSE2 "Enable SSE2 instructions" ON IF ((MSVC OR CMAKE_COMPILER_IS_GNUCXX) AND (X86 OR X86_64)) )
|
192 | OCV_OPTION(ENABLE_SSE3 "Enable SSE3 instructions" ON IF ((CV_ICC OR CMAKE_COMPILER_IS_GNUCXX) AND (X86 OR X86_64)) )
|
193 | OCV_OPTION(ENABLE_SSSE3 "Enable SSSE3 instructions" OFF IF (CMAKE_COMPILER_IS_GNUCXX AND (X86 OR X86_64)) )
|
194 | OCV_OPTION(ENABLE_SSE41 "Enable SSE4.1 instructions" OFF IF ((CV_ICC OR CMAKE_COMPILER_IS_GNUCXX) AND (X86 OR X86_64)) )
|
195 | OCV_OPTION(ENABLE_SSE42 "Enable SSE4.2 instructions" OFF IF (CMAKE_COMPILER_IS_GNUCXX AND (X86 OR X86_64)) )
|
196 | OCV_OPTION(ENABLE_AVX "Enable AVX instructions" OFF IF ((MSVC OR CMAKE_COMPILER_IS_GNUCXX) AND (X86 OR X86_64)) )
|
197 | OCV_OPTION(ENABLE_NOISY_WARNINGS "Show all warnings even if they are too noisy" OFF )
|
198 | OCV_OPTION(OPENCV_WARNINGS_ARE_ERRORS "Treat warnings as errors" OFF )
|
199 |
|
200 |
|
201 | # uncategorized options
|
202 | # ===================================================
|
203 | OCV_OPTION(CMAKE_VERBOSE "Verbose mode" OFF )
|
204 |
|
205 | # backward compatibility
|
206 | # ===================================================
|
207 | include(cmake/OpenCVLegacyOptions.cmake OPTIONAL)
|
208 |
|
209 |
|
210 | # ----------------------------------------------------------------------------
|
211 | # Get actual OpenCV version number from sources
|
212 | # ----------------------------------------------------------------------------
|
213 | include(cmake/OpenCVVersion.cmake)
|
214 |
|
215 |
|
216 | # ----------------------------------------------------------------------------
|
217 | # Build & install layouts
|
218 | # ----------------------------------------------------------------------------
|
219 |
|
220 | # Save libs and executables in the same place
|
221 | set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin" CACHE PATH "Output directory for applications" )
|
222 |
|
223 | if(ANDROID OR WIN32)
|
224 | set(OPENCV_DOC_INSTALL_PATH doc)
|
225 | elseif(INSTALL_TO_MANGLED_PATHS)
|
226 | set(OPENCV_DOC_INSTALL_PATH share/OpenCV-${OPENCV_VERSION}/doc)
|
227 | else()
|
228 | set(OPENCV_DOC_INSTALL_PATH share/OpenCV/doc)
|
229 | endif()
|
230 |
|
231 | if(ANDROID)
|
232 | set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib/${ANDROID_NDK_ABI_NAME}")
|
233 | set(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib/${ANDROID_NDK_ABI_NAME}")
|
234 | set(OPENCV_LIB_INSTALL_PATH sdk/native/libs/${ANDROID_NDK_ABI_NAME})
|
235 | set(OPENCV_3P_LIB_INSTALL_PATH sdk/native/3rdparty/libs/${ANDROID_NDK_ABI_NAME})
|
236 | set(OPENCV_CONFIG_INSTALL_PATH sdk/native/jni)
|
237 | set(OPENCV_INCLUDE_INSTALL_PATH sdk/native/jni/include)
|
238 | else()
|
239 | set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib")
|
240 | set(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}")
|
241 | set(OPENCV_LIB_INSTALL_PATH lib${LIB_SUFFIX})
|
242 | set(OPENCV_3P_LIB_INSTALL_PATH share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH})
|
243 | set(OPENCV_INCLUDE_INSTALL_PATH include)
|
244 |
|
245 | math(EXPR SIZEOF_VOID_P_BITS "8 * ${CMAKE_SIZEOF_VOID_P}")
|
246 | if(LIB_SUFFIX AND NOT SIZEOF_VOID_P_BITS EQUAL LIB_SUFFIX)
|
247 | set(OPENCV_CONFIG_INSTALL_PATH lib${LIB_SUFFIX}/cmake/opencv)
|
248 | else()
|
249 | set(OPENCV_CONFIG_INSTALL_PATH share/OpenCV)
|
250 | endif()
|
251 | endif()
|
252 |
|
253 | set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OPENCV_LIB_INSTALL_PATH}")
|
254 | set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
255 |
|
256 | if(INSTALL_TO_MANGLED_PATHS)
|
257 | set(OPENCV_INCLUDE_INSTALL_PATH ${OPENCV_INCLUDE_INSTALL_PATH}/opencv-${OPENCV_VERSION})
|
258 | endif()
|
259 |
|
260 | if(WIN32)
|
261 | # Postfix of DLLs:
|
262 | set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")
|
263 | set(OPENCV_DEBUG_POSTFIX d)
|
264 | else()
|
265 | # Postfix of so's:
|
266 | set(OPENCV_DLLVERSION "")
|
267 | set(OPENCV_DEBUG_POSTFIX "")
|
268 | endif()
|
269 |
|
270 | if(DEFINED CMAKE_DEBUG_POSTFIX)
|
271 | set(OPENCV_DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}")
|
272 | endif()
|
273 |
|
274 | if(CMAKE_VERBOSE)
|
275 | set(CMAKE_VERBOSE_MAKEFILE 1)
|
276 | endif()
|
277 |
|
278 |
|
279 | # ----------------------------------------------------------------------------
|
280 | # Path for build/platform -specific headers
|
281 | # ----------------------------------------------------------------------------
|
282 | set(OPENCV_CONFIG_FILE_INCLUDE_DIR "${CMAKE_BINARY_DIR}/" CACHE PATH "Where to create the platform-dependant cvconfig.h")
|
283 | add_definitions(-DHAVE_CVCONFIG_H)
|
284 | ocv_include_directories(${OPENCV_CONFIG_FILE_INCLUDE_DIR})
|
285 |
|
286 |
|
287 | # ----------------------------------------------------------------------------
|
288 | # Autodetect if we are in a GIT repository
|
289 | # ----------------------------------------------------------------------------
|
290 |
|
291 | # don't use FindGit because it requires CMake 2.8.2
|
292 | set(git_names git eg) # eg = easy git
|
293 | # Prefer .cmd variants on Windows unless running in a Makefile in the MSYS shell
|
294 | if(CMAKE_HOST_WIN32)
|
295 | if(NOT CMAKE_GENERATOR MATCHES "MSYS")
|
296 | set(git_names git.cmd git eg.cmd eg)
|
297 | endif()
|
298 | endif()
|
299 |
|
300 | find_host_program(GIT_EXECUTABLE NAMES ${git_names} PATH_SUFFIXES Git/cmd Git/bin DOC "git command line client")
|
301 | mark_as_advanced(GIT_EXECUTABLE)
|
302 |
|
303 | if(GIT_EXECUTABLE)
|
304 | execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
|
305 | WORKING_DIRECTORY "${OpenCV_SOURCE_DIR}"
|
306 | OUTPUT_VARIABLE OPENCV_GIT_HASH_SORT
|
307 | RESULT_VARIABLE GIT_RESULT
|
308 | ERROR_QUIET
|
309 | OUTPUT_STRIP_TRAILING_WHITESPACE
|
310 | )
|
311 | if(GIT_RESULT EQUAL 0)
|
312 | set(OPENCV_VCSVERSION "commit:${OPENCV_GIT_HASH_SORT}")
|
313 | else()
|
314 | set(OPENCV_VCSVERSION "exported")
|
315 | endif()
|
316 | else()
|
317 | # We don't have git:
|
318 | set(OPENCV_VCSVERSION "")
|
319 | endif()
|
320 |
|
321 |
|
322 | # ----------------------------------------------------------------------------
|
323 | # OpenCV compiler and linker options
|
324 | # ----------------------------------------------------------------------------
|
325 | # In case of Makefiles if the user does not setup CMAKE_BUILD_TYPE, assume it's Release:
|
326 | if(CMAKE_GENERATOR MATCHES "Makefiles|Ninja" AND "${CMAKE_BUILD_TYPE}" STREQUAL "")
|
327 | set(CMAKE_BUILD_TYPE Release)
|
328 | endif()
|
329 |
|
330 | include(cmake/OpenCVCompilerOptions.cmake)
|
331 |
|
332 |
|
333 | # ----------------------------------------------------------------------------
|
334 | # Use statically or dynamically linked CRT?
|
335 | # Default: dynamic
|
336 | # ----------------------------------------------------------------------------
|
337 | if(MSVC)
|
338 | include(cmake/OpenCVCRTLinkage.cmake)
|
339 | endif(MSVC)
|
340 |
|
341 | if(WIN32 AND NOT MINGW)
|
342 | add_definitions(-D_VARIADIC_MAX=10)
|
343 | endif(WIN32 AND NOT MINGW)
|
344 |
|
345 |
|
346 | # ----------------------------------------------------------------------------
|
347 | # CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC..
|
348 | # ----------------------------------------------------------------------------
|
349 | if(UNIX)
|
350 | include(cmake/OpenCVFindPkgConfig.cmake OPTIONAL)
|
351 | include(CheckFunctionExists)
|
352 | include(CheckIncludeFile)
|
353 |
|
354 | if(NOT APPLE)
|
355 | CHECK_INCLUDE_FILE(alloca.h HAVE_ALLOCA_H)
|
356 | CHECK_FUNCTION_EXISTS(alloca HAVE_ALLOCA)
|
357 | CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
|
358 | CHECK_INCLUDE_FILE(pthread.h HAVE_LIBPTHREAD)
|
359 | if(ANDROID)
|
360 | set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} dl m log)
|
361 | elseif(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD|NetBSD|DragonFly")
|
362 | set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} m pthread)
|
363 | else()
|
364 | set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} dl m pthread rt)
|
365 | endif()
|
366 | else()
|
367 | add_definitions(-DHAVE_ALLOCA -DHAVE_ALLOCA_H -DHAVE_LIBPTHREAD -DHAVE_UNISTD_H)
|
368 | endif()
|
369 | endif()
|
370 |
|
371 | include(cmake/OpenCVPCHSupport.cmake)
|
372 | include(cmake/OpenCVModule.cmake)
|
373 |
|
374 | # ----------------------------------------------------------------------------
|
375 | # Detect 3rd-party libraries
|
376 | # ----------------------------------------------------------------------------
|
377 |
|
378 | include(cmake/OpenCVFindLibsGrfmt.cmake)
|
379 | include(cmake/OpenCVFindLibsGUI.cmake)
|
380 | include(cmake/OpenCVFindLibsVideo.cmake)
|
381 | include(cmake/OpenCVFindLibsPerf.cmake)
|
382 |
|
383 |
|
384 | # ----------------------------------------------------------------------------
|
385 | # Detect other 3rd-party libraries/tools
|
386 | # ----------------------------------------------------------------------------
|
387 |
|
388 | # --- LATEX for pdf documentation ---
|
389 | if(BUILD_DOCS)
|
390 | include(cmake/OpenCVFindLATEX.cmake)
|
391 | endif(BUILD_DOCS)
|
392 |
|
393 | # --- Python Support ---
|
394 | include(cmake/OpenCVDetectPython.cmake)
|
395 |
|
396 | # --- Java Support ---
|
397 | include(cmake/OpenCVDetectApacheAnt.cmake)
|
398 | if(ANDROID)
|
399 | include(cmake/OpenCVDetectAndroidSDK.cmake)
|
400 |
|
401 | if(NOT ANDROID_TOOLS_Pkg_Revision GREATER 13)
|
402 | message(WARNING "OpenCV requires Android SDK tools revision 14 or newer. Otherwise tests and samples will no be compiled.")
|
403 | endif()
|
404 | elseif(ANT_EXECUTABLE)
|
405 | find_package(JNI)
|
406 | endif()
|
407 |
|
408 | if(ANDROID AND ANDROID_EXECUTABLE AND ANT_EXECUTABLE AND (ANT_VERSION VERSION_GREATER 1.7) AND (ANDROID_TOOLS_Pkg_Revision GREATER 13))
|
409 | SET(CAN_BUILD_ANDROID_PROJECTS TRUE)
|
410 | else()
|
411 | SET(CAN_BUILD_ANDROID_PROJECTS FALSE)
|
412 | endif()
|
413 |
|
414 | # --- OpenCL ---
|
415 | if(WITH_OPENCL)
|
416 | include(cmake/OpenCVDetectOpenCL.cmake)
|
417 | if(OPENCL_FOUND)
|
418 | set(HAVE_OPENCL 1)
|
419 | endif()
|
420 | if(WITH_OPENCLAMDFFT AND CLAMDFFT_INCLUDE_DIR)
|
421 | set(HAVE_CLAMDFFT 1)
|
422 | endif()
|
423 | if(WITH_OPENCLAMDBLAS AND CLAMDBLAS_INCLUDE_DIR)
|
424 | set(HAVE_CLAMDBLAS 1)
|
425 | endif()
|
426 | endif()
|
427 |
|
428 | # ----------------------------------------------------------------------------
|
429 | # Solution folders:
|
430 | # ----------------------------------------------------------------------------
|
431 | if(ENABLE_SOLUTION_FOLDERS)
|
432 | set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
433 | set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMakeTargets")
|
434 | endif()
|
435 |
|
436 | # Extra OpenCV targets: uninstall, package_source, perf, etc.
|
437 | include(cmake/OpenCVExtraTargets.cmake)
|
438 |
|
439 |
|
440 | # ----------------------------------------------------------------------------
|
441 | # Process subdirectories
|
442 | # ----------------------------------------------------------------------------
|
443 |
|
444 | # opencv.hpp and legacy headers
|
445 | add_subdirectory(include)
|
446 |
|
447 | # OpenCV modules
|
448 | add_subdirectory(modules)
|
449 |
|
450 | # Generate targets for documentation
|
451 | add_subdirectory(doc)
|
452 |
|
453 | # various data that is used by cv libraries and/or demo applications.
|
454 | add_subdirectory(data)
|
455 |
|
456 | # extra applications
|
457 | if(BUILD_opencv_apps)
|
458 | add_subdirectory(apps)
|
459 | endif()
|
460 |
|
461 | # examples
|
462 | if(BUILD_EXAMPLES OR BUILD_ANDROID_EXAMPLES OR INSTALL_PYTHON_EXAMPLES)
|
463 | add_subdirectory(samples)
|
464 | endif()
|
465 |
|
466 | if(ANDROID)
|
467 | add_subdirectory(android/service)
|
468 | endif()
|
469 |
|
470 | if(BUILD_ANDROID_PACKAGE)
|
471 | add_subdirectory(android/package)
|
472 | endif()
|
473 |
|
474 | if (ANDROID)
|
475 | add_subdirectory(android/libinfo)
|
476 | endif()
|
477 |
|
478 | # ----------------------------------------------------------------------------
|
479 | # Finalization: generate configuration-based files
|
480 | # ----------------------------------------------------------------------------
|
481 | ocv_track_build_dependencies()
|
482 |
|
483 | # Generate platform-dependent and configuration-dependent headers
|
484 | include(cmake/OpenCVGenHeaders.cmake)
|
485 |
|
486 | # Generate opencv.pc for pkg-config command
|
487 | include(cmake/OpenCVGenPkgconfig.cmake)
|
488 |
|
489 | # Generate OpenCV.mk for ndk-build (Android build tool)
|
490 | include(cmake/OpenCVGenAndroidMK.cmake)
|
491 |
|
492 | # Generate OpenCVŠ”onfig.cmake and OpenCVConfig-version.cmake for cmake projects
|
493 | include(cmake/OpenCVGenConfig.cmake)
|
494 |
|
495 |
|
496 | # ----------------------------------------------------------------------------
|
497 | # Summary:
|
498 | # ----------------------------------------------------------------------------
|
499 | status("")
|
500 | status("General configuration for OpenCV ${OPENCV_VERSION} =====================================")
|
501 | if(OPENCV_VCSVERSION)
|
502 | status(" Version control:" ${OPENCV_VCSVERSION})
|
503 | endif()
|
504 |
|
505 | # ========================== build platform ==========================
|
506 | status("")
|
507 | status(" Platform:")
|
508 | status(" Host:" ${CMAKE_HOST_SYSTEM_NAME} ${CMAKE_HOST_SYSTEM_VERSION} ${CMAKE_HOST_SYSTEM_PROCESSOR})
|
509 | if(CMAKE_CROSSCOMPILING)
|
510 | status(" Target:" ${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_VERSION} ${CMAKE_SYSTEM_PROCESSOR})
|
511 | endif()
|
512 | status(" CMake:" ${CMAKE_VERSION})
|
513 | status(" CMake generator:" ${CMAKE_GENERATOR})
|
514 | status(" CMake build tool:" ${CMAKE_BUILD_TOOL})
|
515 | if(MSVC)
|
516 | status(" MSVC:" ${MSVC_VERSION})
|
517 | endif()
|
518 | if(CMAKE_GENERATOR MATCHES Xcode)
|
519 | status(" Xcode:" ${XCODE_VERSION})
|
520 | endif()
|
521 | if(NOT CMAKE_GENERATOR MATCHES "Xcode|Visual Studio")
|
522 | status(" Configuration:" ${CMAKE_BUILD_TYPE})
|
523 | endif()
|
524 |
|
525 | # ========================== C/C++ options ==========================
|
526 | status("")
|
527 | status(" C/C++:")
|
528 | status(" Built as dynamic libs?:" BUILD_SHARED_LIBS THEN YES ELSE NO)
|
529 | status(" C++ Compiler:" CMAKE_COMPILER_IS_GNUCXX THEN "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} (ver ${CMAKE_GCC_REGEX_VERSION})" ELSE "${CMAKE_CXX_COMPILER}" )
|
530 | status(" C++ flags (Release):" ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE})
|
531 | status(" C++ flags (Debug):" ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG})
|
532 | status(" C Compiler:" ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1})
|
533 | status(" C flags (Release):" ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_RELEASE})
|
534 | status(" C flags (Debug):" ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_DEBUG})
|
535 | if(WIN32)
|
536 | status(" Linker flags (Release):" ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_RELEASE})
|
537 | status(" Linker flags (Debug):" ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_DEBUG})
|
538 | else()
|
539 | status(" Linker flags (Release):" ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_RELEASE})
|
540 | status(" Linker flags (Debug):" ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_DEBUG})
|
541 | endif()
|
542 | status(" Precompiled headers:" PCHSupport_FOUND AND ENABLE_PRECOMPILED_HEADERS THEN YES ELSE NO)
|
543 |
|
544 | # ========================== OpenCV modules ==========================
|
545 | status("")
|
546 | status(" OpenCV modules:")
|
547 | string(REPLACE "opencv_" "" OPENCV_MODULES_BUILD_ST "${OPENCV_MODULES_BUILD}")
|
548 | string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_USER_ST "${OPENCV_MODULES_DISABLED_USER}")
|
549 | string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_FORCE_ST "${OPENCV_MODULES_DISABLED_FORCE}")
|
550 | set(OPENCV_MODULES_DISABLED_AUTO_ST "")
|
551 | foreach(m ${OPENCV_MODULES_DISABLED_AUTO})
|
552 | set(__mdeps "")
|
553 | foreach(d ${OPENCV_MODULE_${m}_DEPS})
|
554 | if(d MATCHES "^opencv_" AND NOT HAVE_${d})
|
555 | list(APPEND __mdeps ${d})
|
556 | endif()
|
557 | endforeach()
|
558 | if(__mdeps)
|
559 | list(APPEND OPENCV_MODULES_DISABLED_AUTO_ST "${m}(deps: ${__mdeps})")
|
560 | else()
|
561 | list(APPEND OPENCV_MODULES_DISABLED_AUTO_ST "${m}")
|
562 | endif()
|
563 | endforeach()
|
564 | string(REPLACE "opencv_" "" OPENCV_MODULES_DISABLED_AUTO_ST "${OPENCV_MODULES_DISABLED_AUTO_ST}")
|
565 |
|
566 | status(" To be built:" OPENCV_MODULES_BUILD THEN ${OPENCV_MODULES_BUILD_ST} ELSE "-")
|
567 | status(" Disabled:" OPENCV_MODULES_DISABLED_USER THEN ${OPENCV_MODULES_DISABLED_USER_ST} ELSE "-")
|
568 | status(" Disabled by dependency:" OPENCV_MODULES_DISABLED_AUTO THEN ${OPENCV_MODULES_DISABLED_AUTO_ST} ELSE "-")
|
569 | status(" Unavailable:" OPENCV_MODULES_DISABLED_FORCE THEN ${OPENCV_MODULES_DISABLED_FORCE_ST} ELSE "-")
|
570 |
|
571 | # ========================== Android details ==========================
|
572 | if(ANDROID)
|
573 | status("")
|
574 | status(" Android: ")
|
575 | status(" Android ABI:" ${ANDROID_ABI})
|
576 | status(" STL type:" ${ANDROID_STL})
|
577 | status(" Native API level:" android-${ANDROID_NATIVE_API_LEVEL})
|
578 | status(" SDK target:" "${ANDROID_SDK_TARGET}")
|
579 | if(BUILD_WITH_ANDROID_NDK)
|
580 | status(" Android NDK:" "${ANDROID_NDK} (toolchain: ${ANDROID_TOOLCHAIN_NAME})")
|
581 | elseif(BUILD_WITH_STANDALONE_TOOLCHAIN)
|
582 | status(" Android toolchain:" "${ANDROID_STANDALONE_TOOLCHAIN}")
|
583 | endif()
|
584 | status(" android tool:" ANDROID_EXECUTABLE THEN "${ANDROID_EXECUTABLE} (${ANDROID_TOOLS_Pkg_Desc})" ELSE NO)
|
585 | status(" ant:" ANT_EXECUTABLE THEN "${ANT_EXECUTABLE} (ver ${ANT_VERSION})" ELSE NO)
|
586 | status(" Google Play package:" BUILD_ANDROID_PACKAGE THEN YES ELSE NO)
|
587 | endif()
|
588 |
|
589 | # ========================== GUI ==========================
|
590 | status("")
|
591 | status(" GUI: ")
|
592 |
|
593 | if(HAVE_QT)
|
594 | status(" QT 4.x:" HAVE_QT THEN "YES (ver ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH} ${QT_EDITION})" ELSE NO)
|
595 | status(" QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${QT_QTOPENGL_LIBRARY})" ELSE NO)
|
596 | else()
|
597 | if(DEFINED WITH_QT)
|
598 | status(" QT 4.x:" NO)
|
599 | endif()
|
600 | if(WIN32)
|
601 | status(" Win32 UI:" YES)
|
602 | else()
|
603 | if(APPLE)
|
604 | if(WITH_CARBON)
|
605 | status(" Carbon:" YES)
|
606 | else()
|
607 | status(" Cocoa:" YES)
|
608 | endif()
|
609 | else()
|
610 | status(" GTK+ 2.x:" HAVE_GTK THEN "YES (ver ${ALIASOF_gtk+-2.0_VERSION})" ELSE NO)
|
611 | status(" GThread :" HAVE_GTHREAD THEN "YES (ver ${ALIASOF_gthread-2.0_VERSION})" ELSE NO)
|
612 | status(" GtkGlExt:" HAVE_GTKGLEXT THEN "YES (ver ${ALIASOF_gtkglext-1.0_VERSION})" ELSE NO)
|
613 | endif()
|
614 | endif()
|
615 | endif()
|
616 |
|
617 | status(" OpenGL support:" HAVE_OPENGL THEN "YES (${OPENGL_LIBRARIES})" ELSE NO)
|
618 |
|
619 | # ========================== MEDIA IO ==========================
|
620 | status("")
|
621 | status(" Media I/O: ")
|
622 | status(" ZLib:" BUILD_ZLIB THEN "build (ver ${ZLIB_VERSION_STRING})" ELSE "${ZLIB_LIBRARY} (ver ${ZLIB_VERSION_STRING})")
|
623 |
|
624 | if(WITH_JPEG)
|
625 | status(" JPEG:" JPEG_FOUND THEN "${JPEG_LIBRARY} (ver ${JPEG_LIB_VERSION})" ELSE "build (ver ${JPEG_LIB_VERSION})")
|
626 | else()
|
627 | status(" JPEG:" "NO")
|
628 | endif()
|
629 | if(WITH_PNG)
|
630 | status(" PNG:" PNG_FOUND THEN "${PNG_LIBRARY} (ver ${PNG_VERSION})" ELSE "build (ver ${PNG_VERSION})")
|
631 | else()
|
632 | status(" PNG:" "NO")
|
633 | endif()
|
634 | if(WITH_TIFF)
|
635 | if(TIFF_VERSION_STRING AND TIFF_FOUND)
|
636 | status(" TIFF:" "${TIFF_LIBRARY} (ver ${TIFF_VERSION} - ${TIFF_VERSION_STRING})")
|
637 | else()
|
638 | status(" TIFF:" TIFF_FOUND THEN "${TIFF_LIBRARY} (ver ${TIFF_VERSION})" ELSE "build (ver ${TIFF_VERSION} - ${TIFF_VERSION_STRING})")
|
639 | endif()
|
640 | else()
|
641 | status(" TIFF:" "NO")
|
642 | endif()
|
643 | if(WITH_JASPER)
|
644 | status(" JPEG 2000:" JASPER_FOUND THEN "${JASPER_LIBRARY} (ver ${JASPER_VERSION_STRING})" ELSE "build (ver ${JASPER_VERSION_STRING})")
|
645 | else()
|
646 | status(" JPEG 2000:" "NO")
|
647 | endif()
|
648 | if(WITH_OPENEXR)
|
649 | status(" OpenEXR:" OPENEXR_FOUND THEN "${OPENEXR_LIBRARIES} (ver ${OPENEXR_VERSION})" ELSE "build (ver ${OPENEXR_VERSION})")
|
650 | else()
|
651 | status(" OpenEXR:" "NO")
|
652 | endif()
|
653 |
|
654 | # ========================== VIDEO IO ==========================
|
655 | status("")
|
656 | status(" Video I/O:")
|
657 |
|
658 | if(DEFINED WITH_1394)
|
659 | status(" DC1394 1.x:" HAVE_DC1394 THEN "YES (ver ${ALIASOF_libdc1394_VERSION})" ELSE NO)
|
660 | status(" DC1394 2.x:" HAVE_DC1394_2 THEN "YES (ver ${ALIASOF_libdc1394-2_VERSION})" ELSE NO)
|
661 | endif(DEFINED WITH_1394)
|
662 |
|
663 | if(ANDROID)
|
664 | if(HAVE_opencv_androidcamera)
|
665 | status(" AndroidNativeCamera:" BUILD_ANDROID_CAMERA_WRAPPER
|
666 | THEN "YES, build for Android${ANDROID_VERSION}" ELSE "YES, use prebuilt libraries")
|
667 | else()
|
668 | status(" AndroidNativeCamera:" "NO (native camera requires Android API level 8 or higher)")
|
669 | endif()
|
670 | endif()
|
671 |
|
672 | if(DEFINED WITH_AVFOUNDATION)
|
673 | status(" AVFoundation:" WITH_AVFOUNDATION THEN YES ELSE NO)
|
674 | endif(DEFINED WITH_AVFOUNDATION)
|
675 |
|
676 | if(DEFINED WITH_FFMPEG)
|
677 | if(WIN32)
|
678 | status(" FFMPEG:" WITH_FFMPEG THEN "YES (prebuilt binaries)" ELSE NO)
|
679 | else()
|
680 | status(" FFMPEG:" HAVE_FFMPEG THEN YES ELSE NO)
|
681 | endif()
|
682 | status(" codec:" HAVE_FFMPEG_CODEC THEN "YES (ver ${ALIASOF_libavcodec_VERSION})" ELSE NO)
|
683 | status(" format:" HAVE_FFMPEG_FORMAT THEN "YES (ver ${ALIASOF_libavformat_VERSION})" ELSE NO)
|
684 | status(" util:" HAVE_FFMPEG_UTIL THEN "YES (ver ${ALIASOF_libavutil_VERSION})" ELSE NO)
|
685 | status(" swscale:" HAVE_FFMPEG_SWSCALE THEN "YES (ver ${ALIASOF_libswscale_VERSION})" ELSE NO)
|
686 | status(" gentoo-style:" HAVE_GENTOO_FFMPEG THEN YES ELSE NO)
|
687 | endif(DEFINED WITH_FFMPEG)
|
688 |
|
689 | if(DEFINED WITH_GSTREAMER)
|
690 | status(" GStreamer:" HAVE_GSTREAMER THEN "" ELSE NO)
|
691 | if(HAVE_GSTREAMER)
|
692 | status(" base:" "YES (ver ${ALIASOF_gstreamer-base-0.10_VERSION})")
|
693 | status(" app:" "YES (ver ${ALIASOF_gstreamer-app-0.10_VERSION})")
|
694 | status(" video:" "YES (ver ${ALIASOF_gstreamer-video-0.10_VERSION})")
|
695 | endif()
|
696 | endif(DEFINED WITH_GSTREAMER)
|
697 |
|
698 | if(DEFINED WITH_OPENNI)
|
699 | status(" OpenNI:" HAVE_OPENNI THEN "YES (ver ${OPENNI_VERSION_STRING}, build ${OPENNI_VERSION_BUILD})"
|
700 | ELSE NO)
|
701 | status(" OpenNI PrimeSensor Modules:" HAVE_OPENNI_PRIME_SENSOR_MODULE
|
702 | THEN "YES (${OPENNI_PRIME_SENSOR_MODULE})" ELSE NO)
|
703 | endif(DEFINED WITH_OPENNI)
|
704 |
|
705 | if(DEFINED WITH_PVAPI)
|
706 | status(" PvAPI:" HAVE_PVAPI THEN YES ELSE NO)
|
707 | endif(DEFINED WITH_PVAPI)
|
708 |
|
709 | if(DEFINED WITH_GIGEAPI)
|
710 | status(" GigEVisionSDK:" HAVE_GIGE_API THEN YES ELSE NO)
|
711 | endif(DEFINED WITH_GIGEAPI)
|
712 |
|
713 | if(DEFINED WITH_QUICKTIME)
|
714 | status(" QuickTime:" WITH_QUICKTIME THEN YES ELSE NO)
|
715 | status(" QTKit:" WITH_QUICKTIME THEN NO ELSE YES)
|
716 | endif(DEFINED WITH_QUICKTIME)
|
717 |
|
718 | if(DEFINED WITH_UNICAP)
|
719 | status(" UniCap:" HAVE_UNICAP THEN "YES (ver ${ALIASOF_libunicap_VERSION})" ELSE NO)
|
720 | status(" UniCap ucil:" HAVE_UNICAP_UCIL THEN "YES (ver ${ALIASOF_libucil_VERSION})" ELSE NO)
|
721 | endif(DEFINED WITH_UNICAP)
|
722 |
|
723 | if(DEFINED WITH_V4L)
|
724 | if(HAVE_CAMV4L)
|
725 | set(HAVE_CAMV4L_STR "YES")
|
726 | else()
|
727 | set(HAVE_CAMV4L_STR "NO")
|
728 | endif()
|
729 | if(HAVE_CAMV4L2)
|
730 | set(HAVE_CAMV4L2_STR "YES")
|
731 | elseif(HAVE_VIDEOIO)
|
732 | set(HAVE_CAMV4L2_STR "YES(videoio)")
|
733 | else()
|
734 | set(HAVE_CAMV4L2_STR "NO")
|
735 | endif()
|
736 | status(" V4L/V4L2:" HAVE_LIBV4L THEN "Using libv4l (ver ${ALIASOF_libv4l1_VERSION})"
|
737 | ELSE "${HAVE_CAMV4L_STR}/${HAVE_CAMV4L2_STR}")
|
738 | endif(DEFINED WITH_V4L)
|
739 |
|
740 | if(DEFINED WITH_VIDEOINPUT)
|
741 | status(" DirectShow:" HAVE_VIDEOINPUT THEN YES ELSE NO)
|
742 | endif(DEFINED WITH_VIDEOINPUT)
|
743 |
|
744 | if(DEFINED WITH_XIMEA)
|
745 | status(" XIMEA:" HAVE_XIMEA THEN YES ELSE NO)
|
746 | endif(DEFINED WITH_XIMEA)
|
747 |
|
748 | if(DEFINED WITH_XINE)
|
749 | status(" Xine:" HAVE_XINE THEN "YES (ver ${ALIASOF_libxine_VERSION})" ELSE NO)
|
750 | endif(DEFINED WITH_XINE)
|
751 |
|
752 | # ========================== Other third-party libraries ==========================
|
753 | status("")
|
754 | status(" Other third-party libraries:")
|
755 |
|
756 | if(DEFINED WITH_IPP)
|
757 | if(WITH_IPP AND IPP_FOUND)
|
758 | status(" Use IPP:" "${IPP_LATEST_VERSION_STR} [${IPP_LATEST_VERSION_MAJOR}.${IPP_LATEST_VERSION_MINOR}.${IPP_LATEST_VERSION_BUILD}]")
|
759 | status(" at:" "${IPP_ROOT_DIR}")
|
760 | else()
|
761 | status(" Use IPP:" WITH_IPP AND NOT IPP_FOUND THEN "IPP not found" ELSE NO)
|
762 | endif()
|
763 | endif(DEFINED WITH_IPP)
|
764 |
|
765 | if(DEFINED WITH_TBB)
|
766 | status(" Use TBB:" HAVE_TBB THEN "YES (ver ${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR} interface ${TBB_INTERFACE_VERSION})" ELSE NO)
|
767 | endif(DEFINED WITH_TBB)
|
768 |
|
769 | if(DEFINED WITH_CSTRIPES)
|
770 | status(" Use C=:" HAVE_CSTRIPES THEN YES ELSE NO)
|
771 | endif(DEFINED WITH_CSTRIPES)
|
772 |
|
773 | if(DEFINED WITH_CUDA)
|
774 | status(" Use Cuda:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING})" ELSE NO)
|
775 | endif(DEFINED WITH_CUDA)
|
776 |
|
777 | status(" Use OpenCL:" HAVE_OPENCL THEN YES ELSE NO)
|
778 |
|
779 | status(" Use Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO)
|
780 |
|
781 | if(HAVE_CUDA)
|
782 | status("")
|
783 | status(" NVIDIA CUDA")
|
784 |
|
785 | status(" Use CUFFT:" HAVE_CUFFT THEN YES ELSE NO)
|
786 | status(" Use CUBLAS:" HAVE_CUBLAS THEN YES ELSE NO)
|
787 | status(" USE NVCUVID:" HAVE_NVCUVID THEN YES ELSE NO)
|
788 | status(" NVIDIA GPU arch:" ${OPENCV_CUDA_ARCH_BIN})
|
789 | status(" NVIDIA PTX archs:" ${OPENCV_CUDA_ARCH_PTX})
|
790 | status(" Use fast math:" CUDA_FAST_MATH THEN YES ELSE NO)
|
791 | endif()
|
792 |
|
793 | # ========================== python ==========================
|
794 | status("")
|
795 | status(" Python:")
|
796 | status(" Interpreter:" PYTHON_EXECUTABLE THEN "${PYTHON_EXECUTABLE} (ver ${PYTHON_VERSION_FULL})" ELSE NO)
|
797 | if(BUILD_opencv_python)
|
798 | if(PYTHONLIBS_VERSION_STRING)
|
799 | status(" Libraries:" HAVE_opencv_python THEN "${PYTHON_LIBRARIES} (ver ${PYTHONLIBS_VERSION_STRING})" ELSE NO)
|
800 | else()
|
801 | status(" Libraries:" HAVE_opencv_python THEN ${PYTHON_LIBRARIES} ELSE NO)
|
802 | endif()
|
803 | status(" numpy:" PYTHON_USE_NUMPY THEN "${PYTHON_NUMPY_INCLUDE_DIR} (ver ${PYTHON_NUMPY_VERSION})" ELSE "NO (Python wrappers can not be generated)")
|
804 | status(" packages path:" PYTHON_EXECUTABLE THEN "${PYTHON_PACKAGES_PATH}" ELSE "-")
|
805 | endif()
|
806 |
|
807 | # ========================== documentation ==========================
|
808 | if(BUILD_DOCS)
|
809 | status("")
|
810 | status(" Documentation:")
|
811 | if(HAVE_SPHINX)
|
812 | status(" Build Documentation:" PDFLATEX_COMPILER THEN YES ELSE "YES (only HTML and without math expressions)")
|
813 | else()
|
814 | status(" Build Documentation:" NO)
|
815 | endif()
|
816 | status(" Sphinx:" HAVE_SPHINX THEN "${SPHINX_BUILD} (ver ${SPHINX_VERSION})" ELSE NO)
|
817 | status(" PdfLaTeX compiler:" PDFLATEX_COMPILER THEN "${PDFLATEX_COMPILER}" ELSE NO)
|
818 | endif()
|
819 |
|
820 | # ========================== samples and tests ==========================
|
821 | status("")
|
822 | status(" Tests and samples:")
|
823 | status(" Tests:" BUILD_TESTS AND HAVE_opencv_ts THEN YES ELSE NO)
|
824 | status(" Performance tests:" BUILD_PERF_TESTS AND HAVE_opencv_ts THEN YES ELSE NO)
|
825 | status(" Examples:" BUILD_EXAMPLES THEN YES ELSE NO)
|
826 |
|
827 | if(ANDROID)
|
828 | status(" Android tests:" BUILD_TESTS AND CAN_BUILD_ANDROID_PROJECTS THEN YES ELSE NO)
|
829 | status(" Android examples:" BUILD_ANDROID_EXAMPLES AND CAN_BUILD_ANDROID_PROJECTS THEN YES ELSE NO)
|
830 | endif()
|
831 |
|
832 | # ========================== auxiliary ==========================
|
833 | status("")
|
834 | status(" Install path:" "${CMAKE_INSTALL_PREFIX}")
|
835 | status("")
|
836 | status(" cvconfig.h is in:" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}")
|
837 | status("-----------------------------------------------------------------")
|
838 | status("")
|
839 |
|
840 | ocv_finalize_status()
|
841 |
|
842 | # ----------------------------------------------------------------------------
|
843 | # Warn in the case of in-source build
|
844 | # ----------------------------------------------------------------------------
|
845 | if("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
|
846 | message(WARNING "The source directory is the same as binary directory. \"make clean\" may damage the source tree")
|
847 | endif()
|
848 |
|