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