]> rtime.felk.cvut.cz Git - opencv.git/blob - opencv/CMakeLists.txt
added another possible location for ffmpeg headers
[opencv.git] / opencv / CMakeLists.txt
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 <joseluisblancoc@gmail.com>
9 #
10 # ----------------------------------------------------------------------------
11
12 set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
13
14 # it _must_ go before PROJECT(OpenCV) in order to work
15 if (NOT CMAKE_INSTALL_PREFIX)
16     if (WIN32)
17         set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR} CACHE INTERNAL "" FORCE)
18     elseif()
19         set(CMAKE_INSTALL_PREFIX "/usr" CACHE INTERNAL "" FORCE)
20     endif()
21 endif()
22
23 set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE)
24 set(CMAKE_C_FLAGS_MINSIZEREL "" CACHE INTERNAL "" FORCE)
25 set(CMAKE_C_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "" FORCE)
26 set(CMAKE_CXX_FLAGS_MINSIZEREL "" CACHE INTERNAL "" FORCE)
27 set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "" FORCE)
28 set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "" CACHE INTERNAL "" FORCE)
29 set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "" FORCE)
30 set(CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL "" CACHE INTERNAL "" FORCE)
31 set(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "" FORCE)
32 set(CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "" CACHE INTERNAL "" FORCE)
33 set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "" FORCE)
34
35 project(OpenCV)
36
37 cmake_minimum_required(VERSION 2.4)
38
39 if(MSVC)
40     set(CMAKE_USE_RELATIVE_PATHS ON CACHE INTERNAL "" FORCE)
41 endif()
42
43 # --------------------------------------------------------------
44 # Indicate CMake 2.7 and above that we don't want to mix relative
45 #  and absolute paths in linker lib lists.
46 # Run "cmake --help-policy CMP0003" for more information.
47 # --------------------------------------------------------------
48 if(COMMAND cmake_policy)
49     cmake_policy(SET CMP0003 NEW)
50 endif()
51
52 # ----------------------------------------------------------------------------
53 #  Current version number:
54 # ----------------------------------------------------------------------------
55 set(OPENCV_VERSION "1.1.1")
56
57 string(REGEX MATCHALL "[0-9]" OPENCV_VERSION_PARTS "${OPENCV_VERSION}")
58
59 list(GET OPENCV_VERSION_PARTS 0 OPENCV_VERSION_MAJOR)
60 list(GET OPENCV_VERSION_PARTS 1 OPENCV_VERSION_MINOR)
61 list(GET OPENCV_VERSION_PARTS 2 OPENCV_VERSION_PATCH)
62
63 set(OPENCV_SOVERSION "${OPENCV_VERSION_MAJOR}.${OPENCV_VERSION_MINOR}")
64
65 if(WIN32)
66         # Postfix of DLLs:
67         set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")
68         set(OPENCV_DEBUG_POSTFIX d)
69 else()
70         # Postfix of so's:
71         #set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")
72         set(OPENCV_DLLVERSION "")
73         set(OPENCV_DEBUG_POSTFIX)
74 endif()
75
76
77 # ----------------------------------------------------------------------------
78 #  Variables for cvconfig.h.cmake
79 # ----------------------------------------------------------------------------
80 set(PACKAGE "opencv")
81 set(PACKAGE_BUGREPORT "opencvlibrary-devel@lists.sourceforge.net")
82 set(PACKAGE_NAME "opencv")
83 set(PACKAGE_STRING "${PACKAGE} ${OPENCV_VERSION}")
84 set(PACKAGE_TARNAME "${PACKAGE}")
85 set(PACKAGE_VERSION "${OPENCV_VERSION}")
86
87 # ----------------------------------------------------------------------------
88 #  Autodetect if we are in a SVN repository
89 # ----------------------------------------------------------------------------
90 find_program(SVNVERSION_PATH svnversion)
91 mark_as_advanced(force SVNVERSION_PATH)
92 if(SVNVERSION_PATH)
93     message(STATUS "Extracting svn version, please wait...")
94     execute_process(COMMAND ${SVNVERSION_PATH} -n ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE SVNVERSION_RESULT)
95
96     if(SVNVERSION_RESULT MATCHES "exported")
97        # This is NOT a svn repository:
98        set(OPENCV_SVNVERSION "")
99     else()
100         set(OPENCV_SVNVERSION " svn:${SVNVERSION_RESULT}")
101     endif()
102
103     message(STATUS "SVNVERSION: ${OPENCV_SVNVERSION}")
104 else()
105     # We don't have svnversion:
106     set(OPENCV_SVNVERSION "")
107 endif()
108
109 # ----------------------------------------------------------------------------
110 # Detect GNU version:
111 # ----------------------------------------------------------------------------
112 if(CMAKE_COMPILER_IS_GNUCXX)
113     execute_process(COMMAND ${CMAKE_CXX_COMPILER} --version
114                   OUTPUT_VARIABLE CMAKE_OPENCV_GCC_VERSION_FULL
115                   OUTPUT_STRIP_TRAILING_WHITESPACE)
116
117     # Typical output in CMAKE_OPENCV_GCC_VERSION_FULL: "c+//0 (whatever) 4.2.3 (...)"
118     #  Look for the version number
119     string(REGEX MATCH "[0-9].[0-9].[0-9]" CMAKE_GCC_REGEX_VERSION "${CMAKE_OPENCV_GCC_VERSION_FULL}")
120
121     # Split the three parts:
122     string(REGEX MATCHALL "[0-9]" CMAKE_OPENCV_GCC_VERSIONS "${CMAKE_GCC_REGEX_VERSION}")
123
124     list(GET CMAKE_OPENCV_GCC_VERSIONS 0 CMAKE_OPENCV_GCC_VERSION_MAJOR)
125     list(GET CMAKE_OPENCV_GCC_VERSIONS 1 CMAKE_OPENCV_GCC_VERSION_MINOR)
126
127     set(CMAKE_OPENCV_GCC_VERSION ${CMAKE_OPENCV_GCC_VERSION_MAJOR}${CMAKE_OPENCV_GCC_VERSION_MINOR})
128     message(STATUS "Detected version of GNU GCC: ${CMAKE_OPENCV_GCC_VERSION}")
129 endif()
130
131 # ----------------------------------------------------------------------------
132 #               CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC..
133 # ----------------------------------------------------------------------------
134
135 # Build/install (or not) some apps:
136 # ===================================================
137 set(BUILD_EXAMPLES OFF CACHE BOOL "Build all examples")
138 set(INSTALL_C_EXAMPLES OFF CACHE BOOL "Install C examples")
139 set(INSTALL_PYTHON_EXAMPLES OFF CACHE BOOL "Install Python examples")
140 set(INSTALL_OCTAVE_EXAMPLES OFF CACHE BOOL "Install Octave examples")
141
142 # Build tests:
143 # ===================================================
144 set(BUILD_TESTS ON CACHE BOOL "Build tests")
145
146 # Build 3rdparty libraries under unix
147 # ===================================================
148 if(WIN32 OR APPLE)
149         set(OPENCV_BUILD_3RDPARTY_LIBS TRUE  CACHE BOOL "Build 3rd party libraries")
150 else()
151         set(OPENCV_BUILD_3RDPARTY_LIBS FALSE CACHE BOOL "Build 3rd party libraries")
152 endif()
153
154 include(OpenCVPCHSupport.cmake REQUIRED)
155
156 if(UNIX)
157     include(OpenCVFindPkgConfig.cmake OPTIONAL)
158     include(CheckFunctionExists)
159     include(CheckIncludeFile)
160 endif()
161
162 # Default value for OPENMP:
163 #  MSVC: Yes
164 #  Others: No
165 # ===================================================
166 if(MSVC)
167         set(DEFAULT_ENABLE_OPENMP ON)
168 else()
169         set(DEFAULT_ENABLE_OPENMP OFF)
170 endif()
171
172 set(ENABLE_OPENMP ${DEFAULT_ENABLE_OPENMP} CACHE BOOL "")
173
174 if(CMAKE_COMPILER_IS_GNUCXX)
175     set(ENABLE_PROFILING OFF CACHE BOOL "Enable profiling in the GCC compiler (Add flags: -g -pg)")
176     set(USE_OMIT_FRAME_POINTER ON CACHE BOOL "Enable -fomit-frame-pointer for GCC")
177     if(${CMAKE_SYSTEM_PROCESSOR} MATCHES arm*)
178         # We can use only -O2 because the -O3 causes gcc crash
179         set(USE_O2 ON CACHE BOOL "Enable -O2 for GCC")
180         set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
181     endif()
182     if(${CMAKE_SYSTEM_PROCESSOR} MATCHES amd64*)
183         set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
184         set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
185         set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")
186         set(USE_SSE ON CACHE BOOL "Enable SSE for GCC")
187         set(USE_SSE2 ON CACHE BOOL "Enable SSE2 for GCC")
188         set(USE_SSE3 ON CACHE BOOL "Enable SSE3 for GCC")
189     endif()
190     if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86_64*)
191         set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
192         set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
193         set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")
194         set(USE_SSE ON CACHE BOOL "Enable SSE for GCC")
195         set(USE_SSE2 ON CACHE BOOL "Enable SSE2 for GCC")
196         set(USE_SSE3 ON CACHE BOOL "Enable SSE3 for GCC")
197     endif()
198     if(${CMAKE_SYSTEM_PROCESSOR} MATCHES powerpc*)
199         set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
200         set(USE_POWERPC ON CACHE BOOL "Enable PowerPC for GCC")
201     endif ()
202     if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i686*)
203         set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
204         set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
205         set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")
206                 set(USE_SSE OFF CACHE BOOL "Enable SSE for GCC")
207         set(USE_SSE2 OFF CACHE BOOL "Enable SSE2 for GCC")
208         set(USE_SSE3 OFF CACHE BOOL "Enable SSE3 for GCC")
209         # SSE/SSE2 might probably be not available for some old AMD or VIA processors
210     endif ()
211     if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86)
212         set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
213         set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
214         set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")
215                 set(USE_SSE OFF CACHE BOOL "Enable SSE for GCC")
216         set(USE_SSE2 OFF CACHE BOOL "Enable SSE2 for GCC")
217         set(USE_SSE3 OFF CACHE BOOL "Enable SSE3 for GCC")
218         # SSE/SSE2 might probably be not available for some old AMD or VIA processors
219     endif ()
220 endif()
221
222 # allow fine grained control over which libraries not to link, even if
223 # they are available on the system
224 # ====================================================================
225 if(UNIX)
226     set(WITH_PNG ON CACHE BOOL "Include PNG support")
227     set(WITH_JPEG ON CACHE BOOL "Include JPEG support")
228     set(WITH_JASPER ON CACHE BOOL "Include JPEG2K support")
229     set(WITH_TIFF ON CACHE BOOL "Include TIFF support")
230     set(WITH_FFMPEG ON CACHE BOOL "Include FFMPEG support")
231     set(WITH_UNICAP ON CACHE BOOL "Include Unicap support")
232     set(WITH_GTK ON CACHE BOOL "Include GTK support")
233     set(WITH_GSTREAMER ON CACHE BOOL "Include Gstreamer support")
234     set(WITH_1394 ON CACHE BOOL "Include IEEE1394 support")
235     set(WITH_V4L ON CACHE BOOL "Include Video 4 Linux support")
236     set(WITH_XINE ON CACHE BOOL "Include Xine support")
237 endif()
238
239 # ===================================================
240 # Macros that checks if module have been installed.
241 # After it adds module to build and define
242 # constants passed as second arg
243 # ===================================================
244
245 macro(CHECK_MODULE module_name define)
246     set(${define} 0)
247     if(PKG_CONFIG_FOUND)
248         set(ALIAS               ALIASOF_${module_name})
249         set(ALIAS_FOUND                 ${ALIAS}_FOUND)
250         set(ALIAS_INCLUDE_DIRS   ${ALIAS}_INCLUDE_DIRS)
251         set(ALIAS_LIBRARY_DIRS   ${ALIAS}_LIBRARY_DIRS)
252         set(ALIAS_LIBRARIES         ${ALIAS}_LIBRARIES)
253
254         PKG_CHECK_MODULES(${ALIAS} ${module_name})
255
256         if (${ALIAS_FOUND})
257             set(${define} 1)
258             foreach(P "${ALIAS_INCLUDE_DIRS}")
259                 if (${P})
260                     list(APPEND HIGHGUI_INCLUDE_DIRS ${${P}})
261                 endif()    
262             endforeach()
263
264             foreach(P "${ALIAS_LIBRARY_DIRS}")
265                 if (${P})
266                     list(APPEND HIGHGUI_LIBRARY_DIRS ${${P}})
267                 endif()
268             endforeach()
269
270             list(APPEND HIGHGUI_LIBRARIES ${${ALIAS_LIBRARIES}})
271         endif()
272     endif()
273 endmacro()
274
275 if(UNIX)
276     if(NOT APPLE)
277       if(WITH_GTK)
278         CHECK_MODULE(gtk+-2.0 HAVE_GTK)
279         CHECK_MODULE(gthread-2.0 HAVE_GTHREAD)
280       else()
281         set(HAVE_GTK FALSE)
282         set(HAVE_GTHREAD FALSE)
283       endif()
284       if(WITH_GSTREAMER)
285         CHECK_MODULE(gstreamer-base-0.10 HAVE_GSTREAMER)
286       else()
287         set(HAVE_GSTREAMER FALSE)
288       endif()
289     endif()
290
291     if(WITH_UNICAP)
292       CHECK_MODULE(libunicap HAVE_UNICAP_)
293       CHECK_MODULE(libucil HAVE_UNICAP_UCIL)
294       if(HAVE_UNICAP_ AND HAVE_UNICAP_UCIL)
295         set(HAVE_UNICAP 1)
296       endif()
297     else()
298       set(HAVE_UNICAP FALSE)
299     endif()
300
301     if(WITH_FFMPEG)
302       CHECK_MODULE(libavcodec HAVE_FFMPEG_CODEC)
303       CHECK_MODULE(libavformat HAVE_FFMPEG_FORMAT)
304       CHECK_MODULE(libavutil HAVE_FFMPEG_UTIL)
305       CHECK_MODULE(libswscale HAVE_FFMPEG_SWSCALE)
306       CHECK_INCLUDE_FILE(libavformat/avformat.h HAVE_GENTOO_FFMPEG)
307       if(NOT HAVE_GENTOO_FFMPEG)
308         if(EXISTS /usr/include/ffmpeg/libavformat/avformat.h)
309           set(HAVE_GENTOO_FFMPEG 1)
310         endif()
311       endif()
312       if(HAVE_FFMPEG_CODEC AND HAVE_FFMPEG_FORMAT AND HAVE_FFMPEG_UTIL)
313         set(HAVE_FFMPEG 1)
314       endif()
315     else()
316       set(HAVE_FFMPEG FALSE)
317     endif()
318
319     if(WITH_1394)
320       CHECK_MODULE(libdc1394-2 HAVE_DC1394_2)
321       if(NOT HAVE_DC1394_2)
322         CHECK_MODULE(libdc1394 HAVE_DC1394)
323       endif()
324     else()
325       set(HAVE_DC1394_2 FALSE)
326       set(HAVE_DC1394 FALSE)
327     endif()
328
329     if(NOT APPLE)
330         CHECK_INCLUDE_FILE(alloca.h HAVE_ALLOCA_H)
331         CHECK_FUNCTION_EXISTS(alloca HAVE_ALLOCA)
332         CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
333         CHECK_INCLUDE_FILE(pthread.h HAVE_LIBPTHREAD)
334
335         if(WITH_XINE)
336             CHECK_MODULE(libxine HAVE_XINE)
337         else()
338             set(HAVE_XINE FALSE)
339         endif()
340         if(WITH_V4L)
341             CHECK_MODULE(libv4l1 HAVE_LIBV4L)
342             CHECK_INCLUDE_FILE(linux/videodev.h HAVE_CAMV4L)
343             CHECK_INCLUDE_FILE(linux/videodev2.h HAVE_CAMV4L2)
344         else()
345             set(HAVE_LIBV4L FALSE)
346             set(HAVE_CAMV4L FALSE)
347             set(HAVE_CAMV4L2 FALSE)
348         endif()
349
350         if(NOT OPENCV_BUILD_3RDPARTY_LIBS)
351             if(WITH_PNG)
352                 include(FindPNG)
353                 if(PNG_FOUND)
354                     CHECK_INCLUDE_FILE(${PNG_PNG_INCLUDE_DIR}/png.h HAVE_PNG_H)
355                     CHECK_INCLUDE_FILE(${PNG_PNG_INCLUDE_DIR}/libpng/png.h HAVE_LIBPNG_PNG_H)
356                 endif()
357             else()
358                 set(PNG_FOUND FALSE)
359             endif()
360             if(WITH_TIFF)
361                 include(FindTIFF)
362             else()
363                 set(TIFF_FOUND FALSE)
364             endif()
365             if(WITH_JASPER)
366                 include(FindJasper)
367             else()
368                 set(JASPER_FOUND FALSE)
369             endif()          
370             if(WITH_JPEG)
371                 include(FindJPEG)
372             else()
373                 set(JPEG_FOUND FALSE)
374             endif()
375         endif()
376         
377         if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
378             set(OPENCV_LINKER_LIBS m pthread)
379         else()
380             set(OPENCV_LINKER_LIBS dl m pthread rt)
381         endif()
382     else()
383         add_definitions(-DHAVE_ALLOCA -DHAVE_ALLOCA_H -DHAVE_LIBPTHREAD -DHAVE_UNISTD_H)
384     endif()
385 endif()
386
387 set(BUILD_PYTHON_SUPPORT OFF CACHE BOOL "Build with Python support")
388 set(BUILD_OCTAVE_SUPPORT OFF CACHE BOOL "Build with Octave support")
389
390 find_package(SWIG)
391 if(SWIG_FOUND)
392
393     find_package(PythonInterp)
394     find_package(PythonLibs)
395     
396     # cmake 2.4 (at least on Ubuntu 8.04 (hardy)) don't define PYTHONLIBS_FOUND
397     if(NOT PYTHONLIBS_FOUND AND PYTHON_INCLUDE_PATH)
398         set(PYTHONLIBS_FOUND ON)
399     endif(NOT PYTHONLIBS_FOUND AND PYTHON_INCLUDE_PATH)
400     
401     # Build with python if installed:
402     # ===================================================
403     if(PYTHONLIBS_FOUND AND BUILD_PYTHON_SUPPORT)
404         execute_process(COMMAND ${PYTHON_EXECUTABLE} --version
405                   ERROR_VARIABLE PYTHON_VERSION_FULL
406                   OUTPUT_STRIP_TRAILING_WHITESPACE)
407     
408         string(REGEX MATCH "[0-9].[0-9]" PYTHON_VERSION_MAJOR_MINOR "${PYTHON_VERSION_FULL}")
409         if(UNIX)
410             set(PYTHON_PLUGIN_INSTALL_PATH lib/python${PYTHON_VERSION_MAJOR_MINOR}/site-packages/opencv)
411         endif()
412         if(WIN32)
413             get_filename_component(PYTHON_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${PYTHON_VERSION_MAJOR_MINOR}\\InstallPath]" ABSOLUTE CACHE)
414             set(PYTHON_PLUGIN_INSTALL_PATH "${PYTHON_PATH}/Lib/site-packages/opencv")
415         endif()
416     endif()
417
418 endif()
419
420 if(WIN32)
421
422 set(IPP_FOUND)
423 foreach(v "6.1" "6.0" "5.3" "5.2" "5.1")
424     if(NOT IPP_FOUND)
425         find_path(IPP_PATH "ippi-${v}.dll"
426             PATHS ${CMAKE_PROGRAM_PATH} ${CMAKE_SYSTEM_PROGRAM_PATH}
427             DOC "The path to IPP DLLs")
428         if(IPP_PATH)
429             file(GLOB IPP_HDRS "${IPP_PATH}/../include")
430             if(IPP_HDRS)
431                 set(IPP_FOUND TRUE)
432             endif()
433         endif()
434     endif()
435 endforeach()
436
437 message(STATUS "IPP detected: ${IPP_FOUND}")
438 set(USE_IPP ${IPP_FOUND} CACHE BOOL "Use IPP when available")
439
440 if(IPP_FOUND AND USE_IPP)
441     add_definitions(-DHAVE_IPP)
442     include_directories("${IPP_PATH}/../include")
443     link_directories("${IPP_PATH}/../lib")
444     set(IPP_LIBS ippsmerged.lib ippsemerged.lib ippimerged.lib ippiemerged.lib
445         ippvmmerged.lib ippvmemerged.lib ippccmerged.lib ippccemerged.lib
446         ippcvmerged.lib ippcvemerged.lib ippcorel.lib)
447 endif()
448
449 endif()
450
451 if(UNIX OR APPLE OR ${CMAKE_GENERATOR} MATCHES "MSYS Makefiles")
452     set(BUILD_LATEX_DOCS OFF CACHE BOOL "Build LaTeX OpenCV Documentation")
453 endif()
454
455 # ----------------------------------------------------------------------------
456 #                               UPDATE CONFIG FILES & SCRIPTS:
457 #
458 #  CONFIGURE_FILE(InputFile OutputFile [COPYONLY] [ESCAPE_QUOTES] [@ONLY])
459 # If @ONLY is specified, only variables of the form @VAR@ will be
460 #  replaces and ${VAR} will be ignored.
461 #
462 #  A directory will be created for each platform so the "cvconfig.h" file is
463 #   not overwritten if cmake generates code in the same path.
464 # ----------------------------------------------------------------------------
465 add_definitions(-DHAVE_CONFIG_H)
466
467 set(OPENCV_CONFIG_FILE_INCLUDE_DIR "${CMAKE_BINARY_DIR}/" CACHE PATH "Where to create the platform-dependant cvconfig.h")
468
469 message(STATUS "Parsing 'cvconfig.h.cmake'")
470 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cvconfig.h.cmake" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/cvconfig.h")
471
472 # ---------------------------------------------------------------------------
473 # The C+//0 include & link directories:
474 # ---------------------------------------------------------------------------
475 include_directories("."
476     "${OPENCV_CONFIG_FILE_INCLUDE_DIR}"
477     "${CMAKE_CURRENT_SOURCE_DIR}/include"
478     "${CMAKE_CURRENT_SOURCE_DIR}/include/opencv"
479     )
480
481 # ----------------------------------------------------------------------------
482 #                       Set the maximum level of warnings:
483 # ----------------------------------------------------------------------------
484 # Should be set to true for development
485 set(OPENCV_WARNINGS_ARE_ERRORS OFF CACHE BOOL "Treat warnings as errors")
486
487 # Whole program optimization?
488 set(OPENCV_WHOLE_PROGRAM_OPTIMIZATION OFF CACHE BOOL "Flags for whole program optimization.")
489
490 set(EXTRA_C_FLAGS "")
491 set(EXTRA_C_FLAGS_RELEASE "")
492 set(EXTRA_C_FLAGS_DEBUG "")
493 set(EXTRA_EXE_LINKER_FLAGS "")
494 set(EXTRA_EXE_LINKER_FLAGS_RELEASE "")
495 set(EXTRA_EXE_LINKER_FLAGS_DEBUG "")
496
497 if(MSVC)
498     set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS")
499     # 64-bit portability warnings, in MSVC8
500     if(MSVC80)
501         set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} /Wp64")
502     endif()
503
504     set(EXTRA_EXE_LINKER_FLAGS_RELEASE "${EXTRA_EXE_LINKER_FLAGS_RELEASE} /debug")
505
506     # Whole program optimization
507     if(OPENCV_WHOLE_PROGRAM_OPTIMIZATION AND MSVC_VERSION GREATER 1300)
508         set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /GL")
509         set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")
510         set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG")
511     endif()
512
513     if(ENABLE_OPENMP)
514         set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /openmp")
515     endif()
516
517     # Remove unreferenced functions: function level linking
518     set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} /Gy")
519     set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /Zi")
520 endif()
521
522 if(CMAKE_COMPILER_IS_GNUCXX)
523     # High level of warnings.
524     set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wall")
525
526     # The -Wno-long-long is required in 64bit systems when including sytem headers.
527     if(${CMAKE_SYSTEM_PROCESSOR} MATCHES amd64* OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES x86_64*)
528     set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-long-long")
529     endif()
530
531     # We need pthread's
532     if(UNIX)
533         set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -pthread")
534     endif()
535
536     if(OPENCV_WARNINGS_ARE_ERRORS)
537         set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Werror")
538     endif()
539
540     # Whole program optimization
541     if(OPENCV_WHOLE_PROGRAM_OPTIMIZATION)
542         set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -fwhole-program --combine")
543     endif()
544
545     # Other optimizations
546     if(USE_OMIT_FRAME_POINTER)
547        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -fomit-frame-pointer")
548     endif()
549     if(USE_O2)
550        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -O2")
551     endif()
552     if(USE_O3)
553        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -O3")
554     endif()
555     if(USE_FAST_MATH)
556        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -ffast-math")
557     endif()
558     if(USE_POWERPC)
559        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -mcpu=G3 -mtune=G5")
560     endif()
561     if(USE_MMX)
562        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -mmmx")
563     endif()
564     # SSE should be disabled under MingW because it generates compiler errors
565     if(USE_SSE)
566        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse")
567     endif()
568     # SSE2 should be disabled under MingW because it generates compiler errors
569     if(USE_SSE2)
570        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse2")
571     endif()
572     # SSE3 should be disabled under MingW because it generates compiler errors
573     if(USE_SSE3 AND NOT MINGW)
574        set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse3")
575     endif()
576
577     # Profiling?
578     if(ENABLE_PROFILING)
579         set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -pg -g")
580     else()
581         # Remove unreferenced functions: function level linking
582         if(NOT APPLE)
583             set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -ffunction-sections")
584         endif()
585     endif()
586
587     # Parallel mode
588     if(ENABLE_OPENMP)
589         set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -D_GLIBCXX_PARALLEL -fopenmp")
590     endif()
591
592     set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -DNDEBUG")
593     set(EXTRA_C_FLAGS_DEBUG "${EXTRA_C_FLAGS_DEBUG} -O0 -DDEBUG -D_DEBUG")
594 endif()
595
596
597 # Add user supplied extra options (optimization, etc...)
598 # ==========================================================
599 set(OPENCV_EXTRA_C_FLAGS ${EXTRA_C_FLAGS} CACHE STRING "Extra compiler options")
600 set(OPENCV_EXTRA_C_FLAGS_RELEASE ${EXTRA_C_FLAGS_RELEASE} CACHE STRING "Extra compiler options for Release build")
601 set(OPENCV_EXTRA_C_FLAGS_DEBUG ${EXTRA_C_FLAGS_DEBUG} CACHE STRING "Extra compiler options for Debug build")
602 set(OPENCV_EXTRA_EXE_LINKER_FLAGS ${EXTRA_EXE_LINKER_FLAGS} CACHE STRING "Extra linker flags" FORCE)
603 set(OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE ${EXTRA_EXE_LINKER_FLAGS_RELEASE} CACHE STRING "Extra linker flags for Release build" FORCE)
604 set(OPENCV_EXTRA_EXE_LINKER_FLAGS_DEBUG ${EXTRA_EXE_LINKER_FLAGS_DEBUG} CACHE STRING "Extra linker flags for Debug build" FORCE)
605
606 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OPENCV_EXTRA_C_FLAGS}")
607 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OPENCV_EXTRA_C_FLAGS}")
608 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${OPENCV_EXTRA_C_FLAGS_RELEASE}")
609 set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${OPENCV_EXTRA_C_FLAGS_RELEASE}")
610 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${OPENCV_EXTRA_C_FLAGS_DEBUG}")
611 set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${OPENCV_EXTRA_C_FLAGS_DEBUG}")
612 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OPENCV_EXTRA_EXE_LINKER_FLAGS}")
613 set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE}")
614 set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${OPENCV_EXTRA_EXE_LINKER_FLAGS_DEBUG}")
615
616 # In case of Makefiles if the user does not setup CMAKE_BUILD_TYPE, assume it's Release:
617 if (${CMAKE_GENERATOR} MATCHES ".*Makefiles")
618     if("${CMAKE_BUILD_TYPE}" STREQUAL "")
619         set(CMAKE_BUILD_TYPE Release)
620     endif()
621 endif()
622
623 if (WIN32 AND MSVC)
624     # avoid warnings from MSVC about overriding the /W* option
625     # we replace /W3 with /W4 only for C++ files,
626     # since all the 3rd-party libraries OpenCV uses are in C,
627     # and we do not care about their warnings.
628     string(REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
629     string(REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
630     string(REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
631 endif()
632
633 if("${CMAKE_CONFIGURE_LDFLAGS}")
634     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_CONFIGURE_LDFLAGS}")
635 endif("${CMAKE_CONFIGURE_LDFLAGS}")
636
637 # ----------------------------------------------------------------------------
638 #                                       PROCESS SUBDIRECTORIES:
639 # ----------------------------------------------------------------------------
640 # Save libs and executables in the same place
641 set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE PATH "Output directory for libraries" )
642 set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Output directory for applications" )
643
644 if(WIN32)
645 set(OPENCV_DOC_INSTALL_PATH doc)
646 else()
647 set(OPENCV_DOC_INSTALL_PATH share/opencv/doc)
648 endif()
649
650 #-----------------------------------
651 # Subdirectories:
652 #-----------------------------------
653 add_subdirectory(src)
654 add_subdirectory(apps)
655 add_subdirectory(doc)
656 add_subdirectory(data)
657
658 if(BUILD_EXAMPLES OR INSTALL_PYTHON_EXAMPLES OR INSTALL_OCTAVE_EXAMPLES)
659     add_subdirectory(samples)
660 endif()
661
662 if(BUILD_TESTS)
663     enable_testing()
664     add_subdirectory(tests)
665 endif()
666
667 add_subdirectory(interfaces)
668 add_subdirectory(3rdparty)
669
670 if(BUILD_LATEX_DOCS)
671     include(OpenCVFindLATEX.cmake REQUIRED)
672     if(PDFLATEX_COMPILER)
673         message(STATUS "PDF LaTeX found!")
674         add_subdirectory(doc2)
675     endif()
676 endif()
677
678 # --------------------------------------------------------------------------------------------
679 #   Installation for CMake Module:  OpenCVConfig.cmake
680 #  Part 1/3: ${BIN_DIR}/OpenCVConfig.cmake              -> For use *without* "make install"
681 #  Part 2/3: ${BIN_DIR}/unix-install/OpenCVConfig.cmake -> For use with "make install"
682 #  Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake  -> For use within binary installers/packages
683 # -------------------------------------------------------------------------------------------
684
685 # -------------------------------------------------------------------------------------------
686 #  Part 1/2: ${BIN_DIR}/OpenCVConfig.cmake              -> For use *without* "make install"
687 # -------------------------------------------------------------------------------------------
688
689 # Name of libraries is: libcv.so.1.1.0, etc...
690 #  OPENCV_DLLVERSION must be set to "110", etc..
691 # Already done above.
692
693 # Set CMAKE_INCLUDE_DIRS_CONFIGCMAKE to the list of include directories:
694 set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE)
695 list(APPEND CMAKE_INCLUDE_DIRS_CONFIGCMAKE "${OPENCV_CONFIG_FILE_INCLUDE_DIR}")
696 list(APPEND CMAKE_INCLUDE_DIRS_CONFIGCMAKE "${CMAKE_CURRENT_SOURCE_DIR}/include")
697 list(APPEND CMAKE_INCLUDE_DIRS_CONFIGCMAKE "${CMAKE_CURRENT_SOURCE_DIR}/include/opencv")
698
699 set(CMAKE_LIB_DIRS_CONFIGCMAKE ${LIBRARY_OUTPUT_PATH})
700
701 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/OpenCVConfig.cmake" IMMEDIATE @ONLY)
702
703 # --------------------------------------------------------------------------------------------
704 #  Part 2/2: ${BIN_DIR}/unix-install/OpenCVConfig.cmake -> For use *with* "make install"
705 # -------------------------------------------------------------------------------------------
706 # Set CMAKE_INCLUDE_DIRS_CONFIGCMAKE to the list of include directories:
707
708 set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}/include/opencv")
709 set(CMAKE_LIB_DIRS_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}/lib")
710
711 #exec_program(${CMAKE_COMMAND} ARGS "-E make_directory \"${CMAKE_BINARY_DIR}/unix-install/\"")
712 exec_program(mkdir ARGS "-p \"${CMAKE_BINARY_DIR}/unix-install/\"")
713 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCVConfig.cmake" IMMEDIATE @ONLY)
714
715 if(UNIX)
716     # For a command "FIND_PACKAGE(FOO)", CMake will look at the directory /usr/share|lib/FOO/FOOConfig.cmake, so:
717     install(FILES ${CMAKE_BINARY_DIR}/unix-install/OpenCVConfig.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/share/opencv/)
718 endif()
719
720 # --------------------------------------------------------------------------------------------
721 #  Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake  -> For use within binary installers/packages
722 # -------------------------------------------------------------------------------------------
723 if(WIN32)
724         # Set CMAKE_INCLUDE_DIRS_CONFIGCMAKE to the list of include directories:
725         
726         # This will expand to, for example, <program files>/OpenCV 1.1.0/include
727         set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/include\" \"\${THIS_OPENCV_CONFIG_PATH}/include/opencv\"")
728
729         # This will expand to, for example, <program files>/OpenCV 1.1.0/lib
730         set(CMAKE_LIB_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/lib\"")
731
732         #exec_program(${CMAKE_COMMAND} ARGS "-E make_directory \"${CMAKE_BINARY_DIR}/win-install/\"")
733         exec_program(mkdir ARGS "-p \"${CMAKE_BINARY_DIR}/win-install/\"")
734         configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" IMMEDIATE @ONLY)
735 endif()
736
737
738 # --------------------------------------------------------------------------------------------
739 #  Part 2/2: ${BIN_DIR}/unix-install/opencv.pc -> For use *with* "make install"
740 # prefix=/usr
741 # exec_prefix=${prefix}
742 # libdir=${exec_prefix}/lib
743 # includedir=${prefix}/include/opencv
744 # -------------------------------------------------------------------------------------------
745 set(prefix              ${CMAKE_INSTALL_PREFIX})
746 set(exec_prefix         "\${prefix}")
747 set(libdir              "\${exec_prefix}/lib")
748 set(includedir          "\${prefix}/include")
749 set(VERSION             ${OPENCV_VERSION})
750
751 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/opencv.pc.cmake.in" "${CMAKE_BINARY_DIR}/unix-install/opencv.pc" @ONLY IMMEDIATE)
752
753 if(UNIX)
754     install(FILES ${CMAKE_BINARY_DIR}/unix-install/opencv.pc DESTINATION lib/pkgconfig)
755 endif()
756
757
758 # ----------------------------------------------------------------------------
759 #   Uninstall target, for "make uninstall"
760 # ----------------------------------------------------------------------------
761 CONFIGURE_FILE(
762   "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
763   "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
764   IMMEDIATE @ONLY)
765
766 ADD_CUSTOM_TARGET(uninstall
767   "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
768
769
770 # Make sure the system libraries are also copied when doing an "INSTALL":
771 # ----------------------------------------------------------------------------
772 include(InstallRequiredSystemLibraries)
773
774
775 # ----------------------------------------------------------------------------
776 #   CPack target
777 # ----------------------------------------------------------------------------
778
779 option(BUILD_PACKAGE "Build a installer with the SDK")
780
781 if(BUILD_PACKAGE)
782
783         configure_file(
784         Package.cmake.in
785         ${CMAKE_BINARY_DIR}/.cpack/Package.cmake
786         @ONLY
787         )
788         
789         install(FILES 
790                 AUTHORS
791                 ChangeLog
792                 COPYING
793                 INSTALL
794                 NEWS
795                 README
796                 THANKS
797                 TODO
798                 DESTINATION ${OPENCV_DOC_INSTALL_PATH}
799         COMPONENT doc
800                 )
801
802         IF (WIN32)
803                 # Add the "win-install/OpenCVConfig.cmake" file to the "dev" install component 
804                 install(FILES 
805                         "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake"
806                         DESTINATION "."
807                         COMPONENT dev
808                         )
809
810                 # Add debug libs to "dev" install component 
811                 file(GLOB EXTRA_LIBS_TO_INSTALL "${CMAKE_BINARY_DIR}/lib/Debug/*.lib")
812                 install(FILES 
813                         ${EXTRA_LIBS_TO_INSTALL}
814                         DESTINATION "lib"
815                         COMPONENT dev
816                         )
817                 # Add debug DLLs to "dev" install component 
818                 file(GLOB EXTRA_DLLS_TO_INSTALL "${CMAKE_BINARY_DIR}/bin/Debug/*.dll")
819                 install(FILES 
820                         ${EXTRA_DLLS_TO_INSTALL}
821                         DESTINATION "bin"
822                         COMPONENT dev
823                         )
824         ENDIF(WIN32)
825                 
826         include(${CMAKE_BINARY_DIR}/.cpack/Package.cmake)
827         
828 endif()
829
830 # ----------------------------------------------------------------------------
831 #   Sumary:
832 # ----------------------------------------------------------------------------
833 message(STATUS "")
834 message(STATUS "General configuration for opencv ${OPENCV_VERSION} =====================================")
835 message(STATUS "")
836 message(STATUS "    Compiler:                  ${CMAKE_COMPILER}")
837 message(STATUS "    C++ flags (Release):       ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}")
838 message(STATUS "    C++ flags (Debug):         ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG}")
839 if(WIN32)
840 message(STATUS "    Linker flags (Release):    ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_RELEASE}")
841 message(STATUS "    Linker flags (Debug):      ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_DEBUG}")
842 else()
843 message(STATUS "    Linker flags (Release):    ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_RELEASE}")
844 message(STATUS "    Linker flags (Debug):      ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_DEBUG}")
845 endif()
846
847 if(UNIX)
848 if(NOT APPLE)
849 message(STATUS "")
850 message(STATUS "  GUI: ")
851 message(STATUS "    GTK+ 2.x:                  ${HAVE_GTK}")
852 message(STATUS "    GThread:                   ${HAVE_GTHREAD}")
853 message(STATUS "")
854 if(NOT OPENCV_BUILD_3RDPARTY_LIBS)
855 message(STATUS "  Image I/O: ")
856 message(STATUS "    JPEG:                      ${JPEG_FOUND}")
857 message(STATUS "    PNG:                       ${PNG_FOUND}")
858 message(STATUS "    TIFF:                      ${TIFF_FOUND}")
859 message(STATUS "    JASPER:                    ${JASPER_FOUND}")
860 else()
861 message(STATUS "  Image I/O: ")
862 message(STATUS "    JPEG:                      build")
863 message(STATUS "    PNG:                       build")
864 message(STATUS "    TIFF:                      build")
865 message(STATUS "    JASPER:                    build")
866 endif()
867 endif()
868 message(STATUS "")
869 message(STATUS "  Video I/O: ")
870 message(STATUS "    DC1394 1.x:                ${HAVE_DC1394}")
871 message(STATUS "    DC1394 2.x:                ${HAVE_DC1394_2}")
872 message(STATUS "    FFMPEG:                    ${HAVE_FFMPEG}")
873 message(STATUS "      codec:                   ${HAVE_FFMPEG_CODEC}")
874 message(STATUS "      format:                  ${HAVE_FFMPEG_FORMAT}")
875 message(STATUS "      util:                    ${HAVE_FFMPEG_UTIL}")
876 message(STATUS "      gentoo-style:            ${HAVE_GENTOO_FFMPEG}")
877 message(STATUS "    GStreamer:                 ${HAVE_GSTREAMER}")
878 message(STATUS "    UniCap:                    ${HAVE_UNICAP}")
879 if(HAVE_LIBV4L)
880 message(STATUS "    V4L/V4L2:                  Using libv4l")
881 else()
882 message(STATUS "    V4L/V4L2:                  ${HAVE_CAMV4L}/${HAVE_CAMV4L2}")
883 endif()
884 message(STATUS "    Xine:                      ${HAVE_XINE}")
885 endif()
886 message(STATUS "")
887 message(STATUS "  Interfaces: ")
888 if(PYTHONLIBS_FOUND AND BUILD_PYTHON_SUPPORT)
889 message(STATUS "    Python:                    1")
890 else()
891 message(STATUS "    Python:                    0")
892 endif()
893 if(IPP_FOUND AND USE_IPP)
894 message(STATUS "    Use IPP:                   1")
895 else()
896 message(STATUS "    Use IPP:                   0")
897 endif()
898 if(BUILD_LATEX_DOCS AND PDFLATEX_COMPILER)
899 message(STATUS "    Build Documentation        1")
900 else()
901 message(STATUS "    Build Documentation        0")
902 endif()
903 message(STATUS "")
904 message(STATUS "    Install path:              ${CMAKE_INSTALL_PREFIX}")
905 message(STATUS "")
906 message(STATUS "    cvconfig.h is in:          ${OPENCV_CONFIG_FILE_INCLUDE_DIR}")
907 message(STATUS "-----------------------------------------------------------------")
908 message(STATUS "")
909
910 #----------------------------------------------------------------------------
911 #   Generate the OpenCVConfig.cmake file for unix
912 #      installation in CMAKE_INSTALL_PREFIX
913 #----------------------------------------------------------------------------