1 # ----------------------------------------------------------------------------
\r
2 # Root CMake file for OpenCV
\r
4 # From the off-tree build directory, invoke:
\r
5 # $ cmake <PATH_TO_OPENCV_ROOT>
\r
8 # - OCT-2008: Initial version <joseluisblancoc@gmail.com>
\r
10 # ----------------------------------------------------------------------------
\r
12 set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
\r
14 # it _must_ go before PROJECT(OpenCV) in order to work
\r
15 if (NOT CMAKE_INSTALL_PREFIX)
\r
17 set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR} CACHE INTERNAL "" FORCE)
\r
19 set(CMAKE_INSTALL_PREFIX "/usr" CACHE INTERNAL "" FORCE)
\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
37 cmake_minimum_required(VERSION 2.4)
\r
40 set(CMAKE_USE_RELATIVE_PATHS ON CACHE INTERNAL "" FORCE)
\r
43 #set(CMAKE_C_COMPILER "/opt/BullseyeCoverage/bin/gcc")
\r
44 #set(CMAKE_CXX_COMPILER "/opt/BullseyeCoverage/bin/g++")
\r
45 #set(CMAKE_CXX_COMPILER_INIT "/opt/BullseyeCoverage/bin/gcc")
\r
47 # --------------------------------------------------------------
\r
48 # Indicate CMake 2.7 and above that we don't want to mix relative
\r
49 # and absolute paths in linker lib lists.
\r
50 # Run "cmake --help-policy CMP0003" for more information.
\r
51 # --------------------------------------------------------------
\r
52 if(COMMAND cmake_policy)
\r
53 cmake_policy(SET CMP0003 NEW)
\r
56 # ----------------------------------------------------------------------------
\r
57 # Current version number:
\r
58 # ----------------------------------------------------------------------------
\r
59 set(OPENCV_VERSION "2.0.0")
\r
61 string(REGEX MATCHALL "[0-9]" OPENCV_VERSION_PARTS "${OPENCV_VERSION}")
\r
63 list(GET OPENCV_VERSION_PARTS 0 OPENCV_VERSION_MAJOR)
\r
64 list(GET OPENCV_VERSION_PARTS 1 OPENCV_VERSION_MINOR)
\r
65 list(GET OPENCV_VERSION_PARTS 2 OPENCV_VERSION_PATCH)
\r
67 set(OPENCV_SOVERSION "${OPENCV_VERSION_MAJOR}.${OPENCV_VERSION_MINOR}")
\r
71 set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")
\r
72 set(OPENCV_DEBUG_POSTFIX d)
\r
75 #set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")
\r
76 set(OPENCV_DLLVERSION "")
\r
77 set(OPENCV_DEBUG_POSTFIX)
\r
81 # ----------------------------------------------------------------------------
\r
82 # Build static or dynamic libs?
\r
83 # ----------------------------------------------------------------------------
\r
84 # Default: dynamic libraries:
\r
85 SET(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libraries (.dll/.so) instead of static ones (.lib/.a)")
\r
86 IF(BUILD_SHARED_LIBS)
\r
87 SET(OPENCV_BUILD_SHARED_LIB 1) # For cvconfig.h, etc.
\r
88 ELSE(BUILD_SHARED_LIBS)
\r
89 SET(OPENCV_BUILD_SHARED_LIB 0)
\r
90 ENDIF(BUILD_SHARED_LIBS)
\r
92 # ----------------------------------------------------------------------------
\r
93 # Variables for cvconfig.h.cmake
\r
94 # ----------------------------------------------------------------------------
\r
95 set(PACKAGE "opencv")
\r
96 set(PACKAGE_BUGREPORT "opencvlibrary-devel@lists.sourceforge.net")
\r
97 set(PACKAGE_NAME "opencv")
\r
98 set(PACKAGE_STRING "${PACKAGE} ${OPENCV_VERSION}")
\r
99 set(PACKAGE_TARNAME "${PACKAGE}")
\r
100 set(PACKAGE_VERSION "${OPENCV_VERSION}")
\r
102 # ----------------------------------------------------------------------------
\r
103 # Autodetect if we are in a SVN repository
\r
104 # ----------------------------------------------------------------------------
\r
105 find_program(SVNVERSION_PATH svnversion)
\r
106 mark_as_advanced(force SVNVERSION_PATH)
\r
107 if(SVNVERSION_PATH)
\r
108 message(STATUS "Extracting svn version, please wait...")
\r
109 execute_process(COMMAND ${SVNVERSION_PATH} -n ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE SVNVERSION_RESULT)
\r
111 if(SVNVERSION_RESULT MATCHES "exported")
\r
112 # This is NOT a svn repository:
\r
113 set(OPENCV_SVNVERSION "")
\r
115 set(OPENCV_SVNVERSION " svn:${SVNVERSION_RESULT}")
\r
118 message(STATUS "SVNVERSION: ${OPENCV_SVNVERSION}")
\r
120 # We don't have svnversion:
\r
121 set(OPENCV_SVNVERSION "")
\r
124 # ----------------------------------------------------------------------------
\r
125 # Detect GNU version:
\r
126 # ----------------------------------------------------------------------------
\r
127 if(CMAKE_COMPILER_IS_GNUCXX)
\r
128 execute_process(COMMAND ${CMAKE_CXX_COMPILER} --version
\r
129 OUTPUT_VARIABLE CMAKE_OPENCV_GCC_VERSION_FULL
\r
130 OUTPUT_STRIP_TRAILING_WHITESPACE)
\r
132 # Typical output in CMAKE_OPENCV_GCC_VERSION_FULL: "c+//0 (whatever) 4.2.3 (...)"
\r
133 # Look for the version number
\r
134 string(REGEX MATCH "[0-9].[0-9].[0-9]" CMAKE_GCC_REGEX_VERSION "${CMAKE_OPENCV_GCC_VERSION_FULL}")
\r
136 # Split the three parts:
\r
137 string(REGEX MATCHALL "[0-9]" CMAKE_OPENCV_GCC_VERSIONS "${CMAKE_GCC_REGEX_VERSION}")
\r
139 list(GET CMAKE_OPENCV_GCC_VERSIONS 0 CMAKE_OPENCV_GCC_VERSION_MAJOR)
\r
140 list(GET CMAKE_OPENCV_GCC_VERSIONS 1 CMAKE_OPENCV_GCC_VERSION_MINOR)
\r
142 set(CMAKE_OPENCV_GCC_VERSION ${CMAKE_OPENCV_GCC_VERSION_MAJOR}${CMAKE_OPENCV_GCC_VERSION_MINOR})
\r
143 message(STATUS "Detected version of GNU GCC: ${CMAKE_OPENCV_GCC_VERSION}")
\r
146 # ----------------------------------------------------------------------------
\r
147 # CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC..
\r
148 # ----------------------------------------------------------------------------
\r
150 # Build/install (or not) some apps:
\r
151 # ===================================================
\r
152 set(BUILD_EXAMPLES OFF CACHE BOOL "Build all examples")
\r
153 set(INSTALL_C_EXAMPLES OFF CACHE BOOL "Install C examples")
\r
154 set(INSTALL_PYTHON_EXAMPLES OFF CACHE BOOL "Install Python examples")
\r
155 set(INSTALL_OCTAVE_EXAMPLES OFF CACHE BOOL "Install Octave examples")
\r
158 # ===================================================
\r
159 set(BUILD_TESTS ON CACHE BOOL "Build tests")
\r
161 # Build 3rdparty libraries under unix
\r
162 # ===================================================
\r
164 set(OPENCV_BUILD_3RDPARTY_LIBS TRUE CACHE BOOL "Build 3rd party libraries")
\r
166 set(OPENCV_BUILD_3RDPARTY_LIBS FALSE CACHE BOOL "Build 3rd party libraries")
\r
169 include(OpenCVPCHSupport.cmake REQUIRED)
\r
172 include(OpenCVFindPkgConfig.cmake OPTIONAL)
\r
173 include(CheckFunctionExists)
\r
174 include(CheckIncludeFile)
\r
178 set(DEFAULT_ENABLE_OPENMP ON)
\r
180 set(DEFAULT_ENABLE_OPENMP OFF)
\r
182 set(ENABLE_OPENMP ${DEFAULT_ENABLE_OPENMP} CACHE BOOL "")
\r
184 if(CMAKE_COMPILER_IS_GNUCXX)
\r
185 set(ENABLE_PROFILING OFF CACHE BOOL "Enable profiling in the GCC compiler (Add flags: -g -pg)")
\r
186 set(USE_OMIT_FRAME_POINTER ON CACHE BOOL "Enable -fomit-frame-pointer for GCC")
\r
187 if(${CMAKE_SYSTEM_PROCESSOR} MATCHES arm*)
\r
188 # We can use only -O2 because the -O3 causes gcc crash
\r
189 set(USE_O2 ON CACHE BOOL "Enable -O2 for GCC")
\r
190 set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
\r
192 if(${CMAKE_SYSTEM_PROCESSOR} MATCHES amd64*)
\r
193 set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
\r
194 set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
\r
195 set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")
\r
196 set(USE_SSE ON CACHE BOOL "Enable SSE for GCC")
\r
197 set(USE_SSE2 ON CACHE BOOL "Enable SSE2 for GCC")
\r
198 set(USE_SSE3 ON CACHE BOOL "Enable SSE3 for GCC")
\r
200 if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86_64*)
\r
201 set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
\r
202 set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
\r
203 set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")
\r
204 set(USE_SSE ON CACHE BOOL "Enable SSE for GCC")
\r
205 set(USE_SSE2 ON CACHE BOOL "Enable SSE2 for GCC")
\r
206 set(USE_SSE3 ON CACHE BOOL "Enable SSE3 for GCC")
\r
208 if(${CMAKE_SYSTEM_PROCESSOR} MATCHES powerpc*)
\r
209 set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
\r
210 set(USE_POWERPC ON CACHE BOOL "Enable PowerPC for GCC")
\r
212 if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i686*)
\r
213 set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
\r
214 set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
\r
215 set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")
\r
216 set(USE_SSE OFF CACHE BOOL "Enable SSE for GCC")
\r
217 set(USE_SSE2 OFF CACHE BOOL "Enable SSE2 for GCC")
\r
218 set(USE_SSE3 OFF CACHE BOOL "Enable SSE3 for GCC")
\r
219 # SSE/SSE2 might probably be not available for some old AMD or VIA processors
\r
221 if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86)
\r
222 set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC")
\r
223 set(USE_FAST_MATH ON CACHE BOOL "Enable -ffast-math for GCC")
\r
224 set(USE_MMX ON CACHE BOOL "Enable MMX for GCC")
\r
225 set(USE_SSE OFF CACHE BOOL "Enable SSE for GCC")
\r
226 set(USE_SSE2 OFF CACHE BOOL "Enable SSE2 for GCC")
\r
227 set(USE_SSE3 OFF CACHE BOOL "Enable SSE3 for GCC")
\r
228 # SSE/SSE2 might probably be not available for some old AMD or VIA processors
\r
232 # allow fine grained control over which libraries not to link, even if
\r
233 # they are available on the system
\r
234 # ====================================================================
\r
235 set(WITH_PNG ON CACHE BOOL "Include PNG support")
\r
236 set(WITH_JPEG ON CACHE BOOL "Include JPEG support")
\r
237 set(WITH_JASPER ON CACHE BOOL "Include JPEG2K support")
\r
238 set(WITH_TIFF ON CACHE BOOL "Include TIFF support")
\r
241 set(WITH_FFMPEG ON CACHE BOOL "Include FFMPEG support")
\r
242 set(WITH_UNICAP ON CACHE BOOL "Include Unicap support")
\r
243 set(WITH_PVAPI ON CACHE BOOL "Include Prosilica GigE support")
\r
244 set(WITH_GTK ON CACHE BOOL "Include GTK support")
\r
245 set(WITH_GSTREAMER ON CACHE BOOL "Include Gstreamer support")
\r
246 set(WITH_1394 ON CACHE BOOL "Include IEEE1394 support")
\r
247 set(WITH_V4L ON CACHE BOOL "Include Video 4 Linux support")
\r
248 set(WITH_XINE ON CACHE BOOL "Include Xine support")
\r
251 # ===================================================
\r
252 # Macros that checks if module have been installed.
\r
253 # After it adds module to build and define
\r
254 # constants passed as second arg
\r
255 # ===================================================
\r
257 macro(CHECK_MODULE module_name define)
\r
259 if(PKG_CONFIG_FOUND)
\r
260 set(ALIAS ALIASOF_${module_name})
\r
261 set(ALIAS_FOUND ${ALIAS}_FOUND)
\r
262 set(ALIAS_INCLUDE_DIRS ${ALIAS}_INCLUDE_DIRS)
\r
263 set(ALIAS_LIBRARY_DIRS ${ALIAS}_LIBRARY_DIRS)
\r
264 set(ALIAS_LIBRARIES ${ALIAS}_LIBRARIES)
\r
266 PKG_CHECK_MODULES(${ALIAS} ${module_name})
\r
268 if (${ALIAS_FOUND})
\r
270 foreach(P "${ALIAS_INCLUDE_DIRS}")
\r
272 list(APPEND HIGHGUI_INCLUDE_DIRS ${${P}})
\r
276 foreach(P "${ALIAS_LIBRARY_DIRS}")
\r
278 list(APPEND HIGHGUI_LIBRARY_DIRS ${${P}})
\r
282 list(APPEND HIGHGUI_LIBRARIES ${${ALIAS_LIBRARIES}})
\r
290 CHECK_MODULE(gtk+-2.0 HAVE_GTK)
\r
291 CHECK_MODULE(gthread-2.0 HAVE_GTHREAD)
\r
293 set(HAVE_GTK FALSE)
\r
294 set(HAVE_GTHREAD FALSE)
\r
297 CHECK_MODULE(gstreamer-base-0.10 HAVE_GSTREAMER)
\r
298 CHECK_MODULE(gstreamer-app-0.10 HAVE_GSTREAMER_APP)
\r
299 CHECK_MODULE(gstreamer-video-0.10 HAVE_GSTREAMER)
\r
301 set(HAVE_GSTREAMER FALSE)
\r
306 CHECK_MODULE(libunicap HAVE_UNICAP_)
\r
307 CHECK_MODULE(libucil HAVE_UNICAP_UCIL)
\r
308 if(HAVE_UNICAP_ AND HAVE_UNICAP_UCIL)
\r
312 set(HAVE_UNICAP FALSE)
\r
316 find_path(PVAPI_INCLUDE_PATH "PvApi.h"
\r
317 PATHS "/usr/include" "/usr/local/include"
\r
318 DOC "The path to PvAPI header")
\r
319 if(PVAPI_INCLUDE_PATH)
\r
326 CHECK_MODULE(libavcodec HAVE_FFMPEG_CODEC)
\r
327 CHECK_MODULE(libavformat HAVE_FFMPEG_FORMAT)
\r
328 CHECK_MODULE(libavutil HAVE_FFMPEG_UTIL)
\r
329 CHECK_MODULE(libswscale HAVE_FFMPEG_SWSCALE)
\r
330 CHECK_INCLUDE_FILE(libavformat/avformat.h HAVE_GENTOO_FFMPEG)
\r
331 CHECK_INCLUDE_FILE(ffmpeg/avformat.h HAVE_FFMPEG_FFMPEG)
\r
332 if(NOT HAVE_GENTOO_FFMPEG AND NOT HAVE_FFMPEG_FFMPEG)
\r
333 if(EXISTS /usr/include/ffmpeg/libavformat/avformat.h OR HAVE_FFMPEG_SWSCALE)
\r
334 set(HAVE_GENTOO_FFMPEG 1)
\r
337 if(HAVE_FFMPEG_CODEC AND HAVE_FFMPEG_FORMAT AND HAVE_FFMPEG_UTIL)
\r
338 if(HAVE_FFMPEG_SWSCALE OR NOT HAVE_GENTOO_FFMPEG)
\r
345 CHECK_MODULE(libdc1394-2 HAVE_DC1394_2)
\r
346 if(NOT HAVE_DC1394_2)
\r
347 CHECK_MODULE(libdc1394 HAVE_DC1394)
\r
350 set(HAVE_DC1394_2 FALSE)
\r
351 set(HAVE_DC1394 FALSE)
\r
355 CHECK_INCLUDE_FILE(alloca.h HAVE_ALLOCA_H)
\r
356 CHECK_FUNCTION_EXISTS(alloca HAVE_ALLOCA)
\r
357 CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
\r
358 CHECK_INCLUDE_FILE(pthread.h HAVE_LIBPTHREAD)
\r
361 CHECK_MODULE(libxine HAVE_XINE)
\r
363 set(HAVE_XINE FALSE)
\r
366 CHECK_MODULE(libv4l1 HAVE_LIBV4L)
\r
367 CHECK_INCLUDE_FILE(linux/videodev.h HAVE_CAMV4L)
\r
368 CHECK_INCLUDE_FILE(linux/videodev2.h HAVE_CAMV4L2)
\r
370 set(HAVE_LIBV4L FALSE)
\r
371 set(HAVE_CAMV4L FALSE)
\r
372 set(HAVE_CAMV4L2 FALSE)
\r
375 if(NOT OPENCV_BUILD_3RDPARTY_LIBS)
\r
379 CHECK_INCLUDE_FILE(${PNG_PNG_INCLUDE_DIR}/png.h HAVE_PNG_H)
\r
380 CHECK_INCLUDE_FILE(${PNG_PNG_INCLUDE_DIR}/libpng/png.h HAVE_LIBPNG_PNG_H)
\r
383 set(PNG_FOUND FALSE)
\r
388 set(TIFF_FOUND FALSE)
\r
391 include(FindJasper)
\r
393 set(JASPER_FOUND FALSE)
\r
398 set(JPEG_FOUND FALSE)
\r
402 if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
\r
403 set(OPENCV_LINKER_LIBS m pthread)
\r
405 set(OPENCV_LINKER_LIBS dl m pthread rt)
\r
408 add_definitions(-DHAVE_ALLOCA -DHAVE_ALLOCA_H -DHAVE_LIBPTHREAD -DHAVE_UNISTD_H)
\r
412 set(BUILD_NEW_PYTHON_SUPPORT ON CACHE BOOL "Build with Python support")
\r
413 set(BUILD_SWIG_PYTHON_SUPPORT OFF CACHE BOOL "Build with older SWIG-based Python support")
\r
414 set(BUILD_OCTAVE_SUPPORT OFF CACHE BOOL "Build with Octave support")
\r
416 if(BUILD_SWIG_PYTHON_SUPPORT OR BUILD_NEW_PYTHON_SUPPORT)
\r
417 find_package(PythonInterp)
\r
418 find_package(PythonLibs)
\r
420 # cmake 2.4 (at least on Ubuntu 8.04 (hardy)) don't define PYTHONLIBS_FOUND
\r
421 if(NOT PYTHONLIBS_FOUND AND PYTHON_INCLUDE_PATH)
\r
422 set(PYTHONLIBS_FOUND ON)
\r
423 endif(NOT PYTHONLIBS_FOUND AND PYTHON_INCLUDE_PATH)
\r
425 execute_process(COMMAND ${PYTHON_EXECUTABLE} --version
\r
426 ERROR_VARIABLE PYTHON_VERSION_FULL
\r
427 OUTPUT_STRIP_TRAILING_WHITESPACE)
\r
429 string(REGEX MATCH "[0-9].[0-9]" PYTHON_VERSION_MAJOR_MINOR "${PYTHON_VERSION_FULL}")
\r
431 set(PYTHON_PLUGIN_INSTALL_PATH lib/python${PYTHON_VERSION_MAJOR_MINOR}/site-packages/opencv)
\r
432 set(PYTHON_PACKAGES_PATH lib/python${PYTHON_VERSION_MAJOR_MINOR}/site-packages)
\r
435 get_filename_component(PYTHON_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${PYTHON_VERSION_MAJOR_MINOR}\\InstallPath]" ABSOLUTE CACHE)
\r
436 set(PYTHON_PLUGIN_INSTALL_PATH "${PYTHON_PATH}/Lib/site-packages/opencv")
\r
437 set(PYTHON_PACKAGES_PATH "${PYTHON_PATH}/Lib/site-packages")
\r
441 if(PYTHONLIBS_FOUND AND BUILD_SWIG_PYTHON_SUPPORT)
\r
446 ############################### IPP ################################
\r
448 set(OPENCV_LOADER_PATH)
\r
452 set(OPENCV_LOADER_PATH DYLD_LIBRARY_PATH)
\r
454 set(OPENCV_LOADER_PATH LD_LIBRARY_PATH)
\r
458 foreach(v "6.1" "6.0" "5.3" "5.2" "5.1")
\r
461 find_path(IPP_PATH "ippi-${v}.dll"
\r
462 PATHS ${CMAKE_PROGRAM_PATH} ${CMAKE_SYSTEM_PROGRAM_PATH}
\r
463 DOC "The path to IPP dynamic libraries")
\r
465 find_path(IPP_PATH "ippiem64t-${v}.dll"
\r
466 PATHS ${CMAKE_PROGRAM_PATH} ${CMAKE_SYSTEM_PROGRAM_PATH}
\r
467 DOC "The path to IPP dynamic libraries")
\r
471 find_path(IPP_PATH "libippi${CMAKE_SHARED_LIBRARY_SUFFIX}.${v}"
\r
472 PATHS ${CMAKE_LIBRARY_PATH} ${CMAKE_SYSTEM_LIBRARY_PATH} ENV ${OPENCV_LOADER_PATH}
\r
473 DOC "The path to IPP dynamic libraries")
\r
475 find_path(IPP_PATH "libippiem64t${CMAKE_SHARED_LIBRARY_SUFFIX}.${v}"
\r
476 PATHS ${CMAKE_LIBRARY_PATH} ${CMAKE_SYSTEM_LIBRARY_PATH} ENV ${OPENCV_LOADER_PATH}
\r
477 DOC "The path to IPP dynamic libraries")
\r
481 file(GLOB IPP_HDRS "${IPP_PATH}/../include")
\r
483 set(IPP_FOUND TRUE)
\r
489 message(STATUS "IPP detected: ${IPP_FOUND}")
\r
491 if(WIN32 AND NOT MSVC)
\r
495 set(USE_IPP ${IPP_FOUND} CACHE BOOL "Use IPP when available")
\r
497 if(IPP_FOUND AND USE_IPP)
\r
498 add_definitions(-DHAVE_IPP)
\r
499 include_directories("${IPP_PATH}/../include")
\r
500 link_directories("${IPP_PATH}/../lib")
\r
502 file(GLOB em64t_files "${IPP_PATH}/../lib/*em64t*")
\r
505 set(IPP_ARCH "em64t")
\r
508 set(A ${CMAKE_STATIC_LIBRARY_PREFIX})
\r
509 set(B ${IPP_ARCH}${CMAKE_STATIC_LIBRARY_SUFFIX})
\r
515 set(IPP_LIBS ${A}ippsmerged${B} ${A}ippsemerged${B}
\r
516 ${A}ippimerged${B} ${A}ippiemerged${B}
\r
517 ${A}ippvmmerged${B} ${A}ippvmemerged${B}
\r
518 ${A}ippccmerged${B} ${A}ippccemerged${B}
\r
519 ${A}ippcvmerged${B} ${A}ippcvemerged${B}
\r
520 ${A}ippcore${IPP_ARCH}${L}${CMAKE_STATIC_LIBRARY_SUFFIX})
\r
524 ################## LATEX ##################
\r
525 set(BUILD_LATEX_DOCS OFF CACHE BOOL "Build LaTeX OpenCV Documentation")
\r
527 # ----------------------------------------------------------------------------
\r
528 # UPDATE CONFIG FILES & SCRIPTS:
\r
530 # CONFIGURE_FILE(InputFile OutputFile [COPYONLY] [ESCAPE_QUOTES] [@ONLY])
\r
531 # If @ONLY is specified, only variables of the form @VAR@ will be
\r
532 # replaces and ${VAR} will be ignored.
\r
534 # A directory will be created for each platform so the "cvconfig.h" file is
\r
535 # not overwritten if cmake generates code in the same path.
\r
536 # ----------------------------------------------------------------------------
\r
537 add_definitions(-DHAVE_CONFIG_H)
\r
539 set(OPENCV_CONFIG_FILE_INCLUDE_DIR "${CMAKE_BINARY_DIR}/" CACHE PATH "Where to create the platform-dependant cvconfig.h")
\r
541 message(STATUS "Parsing 'cvconfig.h.cmake'")
\r
542 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cvconfig.h.cmake" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/cvconfig.h")
\r
544 # ---------------------------------------------------------------------------
\r
545 # The C+//0 include & link directories:
\r
546 # ---------------------------------------------------------------------------
\r
547 include_directories("."
\r
548 "${OPENCV_CONFIG_FILE_INCLUDE_DIR}"
\r
549 "${CMAKE_CURRENT_SOURCE_DIR}/include"
\r
550 "${CMAKE_CURRENT_SOURCE_DIR}/include/opencv"
\r
553 # ----------------------------------------------------------------------------
\r
554 # Set the maximum level of warnings:
\r
555 # ----------------------------------------------------------------------------
\r
556 # Should be set to true for development
\r
557 set(OPENCV_WARNINGS_ARE_ERRORS OFF CACHE BOOL "Treat warnings as errors")
\r
559 # Whole program optimization?
\r
560 set(OPENCV_WHOLE_PROGRAM_OPTIMIZATION OFF CACHE BOOL "Flags for whole program optimization.")
\r
562 set(EXTRA_C_FLAGS "")
\r
563 set(EXTRA_C_FLAGS_RELEASE "")
\r
564 set(EXTRA_C_FLAGS_DEBUG "")
\r
565 set(EXTRA_EXE_LINKER_FLAGS "")
\r
566 set(EXTRA_EXE_LINKER_FLAGS_RELEASE "")
\r
567 set(EXTRA_EXE_LINKER_FLAGS_DEBUG "")
\r
570 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS")
\r
571 # 64-bit portability warnings, in MSVC8
\r
573 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} /Wp64")
\r
576 # set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} /D _BIND_TO_CURRENT_CRT_VERSION=1 /D _BIND_TO_CURRENT_VCLIBS_VERSION=1")
\r
579 set(EXTRA_EXE_LINKER_FLAGS_RELEASE "${EXTRA_EXE_LINKER_FLAGS_RELEASE} /debug")
\r
581 # Whole program optimization
\r
582 if(OPENCV_WHOLE_PROGRAM_OPTIMIZATION AND MSVC_VERSION GREATER 1300)
\r
583 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /GL")
\r
584 set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")
\r
585 set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG")
\r
589 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /openmp")
\r
592 # Remove unreferenced functions: function level linking
\r
593 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} /Gy")
\r
594 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /Zi")
\r
597 if(CMAKE_COMPILER_IS_GNUCXX)
\r
598 # High level of warnings.
\r
599 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wall")
\r
601 # The -Wno-long-long is required in 64bit systems when including sytem headers.
\r
602 if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86_64*)
\r
603 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-long-long")
\r
605 if(${CMAKE_SYSTEM_PROCESSOR} MATCHES amd64*)
\r
606 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-long-long")
\r
609 # We need pthread's
\r
611 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -pthread")
\r
614 if(OPENCV_WARNINGS_ARE_ERRORS)
\r
615 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Werror")
\r
618 # Whole program optimization
\r
619 if(OPENCV_WHOLE_PROGRAM_OPTIMIZATION)
\r
620 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -fwhole-program --combine")
\r
623 # Other optimizations
\r
624 if(USE_OMIT_FRAME_POINTER)
\r
625 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -fomit-frame-pointer")
\r
628 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -O2")
\r
631 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -O3")
\r
634 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -ffast-math")
\r
637 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -mcpu=G3 -mtune=G5")
\r
640 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -mmmx")
\r
643 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse")
\r
646 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse2")
\r
648 # SSE3 should be disabled under MingW because it generates compiler errors
\r
649 if(USE_SSE3 AND NOT MINGW)
\r
650 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse3")
\r
654 if(ENABLE_PROFILING)
\r
655 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -pg -g")
\r
657 # Remove unreferenced functions: function level linking
\r
659 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -ffunction-sections")
\r
665 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -D_GLIBCXX_PARALLEL -fopenmp")
\r
666 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} gomp)
\r
669 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -DNDEBUG")
\r
670 set(EXTRA_C_FLAGS_DEBUG "${EXTRA_C_FLAGS_DEBUG} -O0 -DDEBUG -D_DEBUG")
\r
673 # Extra link libs if the user selects building static libs:
\r
674 IF(NOT BUILD_SHARED_LIBS)
\r
675 if(CMAKE_COMPILER_IS_GNUCXX)
\r
676 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} stdc++)
\r
679 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} flann zlib opencv_lapack)
\r
683 # Add user supplied extra options (optimization, etc...)
\r
684 # ==========================================================
\r
685 set(OPENCV_EXTRA_C_FLAGS "" CACHE STRING "Extra compiler options")
\r
686 set(OPENCV_EXTRA_C_FLAGS_RELEASE "" CACHE STRING "Extra compiler options for Release build")
\r
687 set(OPENCV_EXTRA_C_FLAGS_DEBUG "" CACHE STRING "Extra compiler options for Debug build")
\r
688 set(OPENCV_EXTRA_EXE_LINKER_FLAGS "" CACHE STRING "Extra linker flags" FORCE)
\r
689 set(OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE "" CACHE STRING "Extra linker flags for Release build" FORCE)
\r
690 set(OPENCV_EXTRA_EXE_LINKER_FLAGS_DEBUG "" CACHE STRING "Extra linker flags for Debug build" FORCE)
\r
692 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS} ${OPENCV_EXTRA_C_FLAGS}")
\r
693 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_C_FLAGS} ${OPENCV_EXTRA_C_FLAGS}")
\r
694 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${EXTRA_C_FLAGS_RELEASE} ${OPENCV_EXTRA_C_FLAGS_RELEASE}")
\r
695 set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${EXTRA_C_FLAGS_RELEASE} ${OPENCV_EXTRA_C_FLAGS_RELEASE}")
\r
696 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${EXTRA_C_FLAGS_DEBUG} ${OPENCV_EXTRA_C_FLAGS_DEBUG}")
\r
697 set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${EXTRA_C_FLAGS_DEBUG} ${OPENCV_EXTRA_C_FLAGS_DEBUG}")
\r
698 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${EXTRA_EXE_LINKER_FLAGS} ${OPENCV_EXTRA_EXE_LINKER_FLAGS}")
\r
699 set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${EXTRA_EXE_LINKER_FLAGS_RELEASE} ${OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE}")
\r
700 set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${EXTRA_EXE_LINKER_FLAGS_DEBUG} ${OPENCV_EXTRA_EXE_LINKER_FLAGS_DEBUG}")
\r
702 # In case of Makefiles if the user does not setup CMAKE_BUILD_TYPE, assume it's Release:
\r
703 if (${CMAKE_GENERATOR} MATCHES ".*Makefiles")
\r
704 if("${CMAKE_BUILD_TYPE}" STREQUAL "")
\r
705 set(CMAKE_BUILD_TYPE Release)
\r
709 if (WIN32 AND MSVC)
\r
710 # avoid warnings from MSVC about overriding the /W* option
\r
711 # we replace /W3 with /W4 only for C++ files,
\r
712 # since all the 3rd-party libraries OpenCV uses are in C,
\r
713 # and we do not care about their warnings.
\r
714 string(REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
\r
715 string(REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
\r
716 string(REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
\r
718 # allow extern "C" functions throw exceptions
\r
719 string(REPLACE "/EHsc" "/EHsc-" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
\r
720 string(REPLACE "/EHsc" "/EHsc-" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
\r
721 string(REPLACE "/EHsc" "/EHsc-" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
\r
722 string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
\r
723 string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
\r
724 string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
\r
727 if("${CMAKE_CONFIGURE_LDFLAGS}")
\r
728 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_CONFIGURE_LDFLAGS}")
\r
729 endif("${CMAKE_CONFIGURE_LDFLAGS}")
\r
731 # ----------------------------------------------------------------------------
\r
732 # PROCESS SUBDIRECTORIES:
\r
733 # ----------------------------------------------------------------------------
\r
734 # Save libs and executables in the same place
\r
735 set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE PATH "Output directory for libraries" )
\r
736 set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Output directory for applications" )
\r
739 set(OPENCV_DOC_INSTALL_PATH doc)
\r
741 set(OPENCV_DOC_INSTALL_PATH share/opencv/doc)
\r
744 # --------------------------------------------------------------------------------------------
\r
745 # Installation for CMake Module: OpenCVConfig.cmake
\r
746 # Part 1/3: ${BIN_DIR}/OpenCVConfig.cmake -> For use *without* "make install"
\r
747 # Part 2/3: ${BIN_DIR}/unix-install/OpenCVConfig.cmake -> For use with "make install"
\r
748 # Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages
\r
749 # -------------------------------------------------------------------------------------------
\r
751 # -------------------------------------------------------------------------------------------
\r
752 # Part 1/3: ${BIN_DIR}/OpenCVConfig.cmake -> For use *without* "make install"
\r
753 # -------------------------------------------------------------------------------------------
\r
755 # Name of libraries is: libcv.so.1.1.0, etc...
\r
756 # OPENCV_DLLVERSION must be set to "110", etc..
\r
757 # Already done above.
\r
759 # Set CMAKE_INCLUDE_DIRS_CONFIGCMAKE to the list of include directories:
\r
760 set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"${OPENCV_CONFIG_FILE_INCLUDE_DIR}\" \"${CMAKE_CURRENT_SOURCE_DIR}/include\" \"${CMAKE_CURRENT_SOURCE_DIR}/include/opencv\"")
\r
762 set(CMAKE_LIB_DIRS_CONFIGCMAKE "${LIBRARY_OUTPUT_PATH}")
\r
764 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/OpenCVConfig.cmake" IMMEDIATE @ONLY)
\r
766 # --------------------------------------------------------------------------------------------
\r
767 # Part 2/3: ${BIN_DIR}/unix-install/OpenCVConfig.cmake -> For use *with* "make install"
\r
768 # -------------------------------------------------------------------------------------------
\r
769 # Set CMAKE_INCLUDE_DIRS_CONFIGCMAKE to the list of include directories:
\r
771 set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}/include/opencv")
\r
772 set(CMAKE_LIB_DIRS_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}/lib")
\r
774 #exec_program(${CMAKE_COMMAND} ARGS "-E make_directory \"${CMAKE_BINARY_DIR}/unix-install/\"")
\r
775 exec_program(mkdir ARGS "-p \"${CMAKE_BINARY_DIR}/unix-install/\"")
\r
776 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCVConfig.cmake" IMMEDIATE @ONLY)
\r
779 # For a command "FIND_PACKAGE(FOO)", CMake will look at the directory /usr/share|lib/FOO/FOOConfig.cmake, so:
\r
780 install(FILES ${CMAKE_BINARY_DIR}/unix-install/OpenCVConfig.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/share/opencv/)
\r
783 # --------------------------------------------------------------------------------------------
\r
784 # Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages
\r
785 # -------------------------------------------------------------------------------------------
\r
787 # Set CMAKE_INCLUDE_DIRS_CONFIGCMAKE to the list of include directories:
\r
789 # This will expand to, for example, <program files>/OpenCV 1.1.0/include
\r
790 set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/include\" \"\${THIS_OPENCV_CONFIG_PATH}/include/opencv\"")
\r
792 # This will expand to, for example, <program files>/OpenCV 1.1.0/lib
\r
793 set(CMAKE_LIB_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/lib\"")
\r
795 #exec_program(${CMAKE_COMMAND} ARGS "-E make_directory \"${CMAKE_BINARY_DIR}/win-install/\"")
\r
796 exec_program(mkdir ARGS "-p \"${CMAKE_BINARY_DIR}/win-install/\"")
\r
797 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" IMMEDIATE @ONLY)
\r
801 # --------------------------------------------------------------------------------------------
\r
802 # Part 2/2: ${BIN_DIR}/unix-install/opencv.pc -> For use *with* "make install"
\r
804 # exec_prefix=${prefix}
\r
805 # libdir=${exec_prefix}/lib
\r
806 # includedir=${prefix}/include/opencv
\r
807 # -------------------------------------------------------------------------------------------
\r
808 set(prefix ${CMAKE_INSTALL_PREFIX})
\r
809 set(exec_prefix "\${prefix}")
\r
810 set(libdir "\${exec_prefix}/lib")
\r
811 set(includedir "\${prefix}/include")
\r
812 set(VERSION ${OPENCV_VERSION})
\r
814 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/opencv.pc.cmake.in" "${CMAKE_BINARY_DIR}/unix-install/opencv.pc" @ONLY IMMEDIATE)
\r
817 install(FILES ${CMAKE_BINARY_DIR}/unix-install/opencv.pc DESTINATION lib/pkgconfig)
\r
821 # ----------------------------------------------------------------------------
\r
822 # Uninstall target, for "make uninstall"
\r
823 # ----------------------------------------------------------------------------
\r
825 "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
\r
826 "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
\r
829 ADD_CUSTOM_TARGET(uninstall
\r
830 "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
\r
833 # ----------------------------------------------------------------------------
\r
835 # ----------------------------------------------------------------------------
\r
837 set(BUILD_PACKAGE OFF CACHE BOOL "Build a installer with the SDK")
\r
843 ${CMAKE_BINARY_DIR}/.cpack/Package.cmake
\r
847 include(${CMAKE_BINARY_DIR}/.cpack/Package.cmake)
\r
849 set(root_files README)
\r
851 file(GLOB root_src_files *.in *.cmake CMakeLists.txt)
\r
854 install(FILES ${root_files}
\r
855 DESTINATION ${OPENCV_DOC_INSTALL_PATH}
\r
858 install(FILES ${root_files}
\r
861 install(FILES ${root_src_files}
\r
864 # Add the "win-install/OpenCVConfig.cmake" file to the "main" install component
\r
866 "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake"
\r
871 if(CMAKE_INSTALL_DEBUG_LIBRARIES)
\r
872 foreach(m cxcore cv cvaux ml highgui opencv_ffmpeg)
\r
873 install(FILES ${CMAKE_BINARY_DIR}/bin/Debug/${m}${OPENCV_DLLVERSION}d.dll
\r
874 DESTINATION bin COMPONENT main)
\r
875 install(FILES ${CMAKE_BINARY_DIR}/lib/Debug/${m}${OPENCV_DLLVERSION}d.lib
\r
876 DESTINATION lib COMPONENT main)
\r
880 install(DIRECTORY data samples DESTINATION "." COMPONENT main PATTERN ".svn" EXCLUDE)
\r
881 install(DIRECTORY 3rdparty apps interfaces src tests utils DESTINATION "." COMPONENT src PATTERN ".svn" EXCLUDE)
\r
882 install(DIRECTORY doc/ DESTINATION doc COMPONENT src FILES_MATCHING PATTERN "*.tex")
\r
883 install(DIRECTORY doc/pics DESTINATION doc COMPONENT src PATTERN ".svn" EXCLUDE)
\r
884 install(DIRECTORY doc/plastex DESTINATION doc COMPONENT src PATTERN ".svn" EXCLUDE)
\r
890 #-----------------------------------
\r
892 #-----------------------------------
\r
893 add_subdirectory(src)
\r
894 add_subdirectory(apps)
\r
896 if(BUILD_LATEX_DOCS)
\r
897 include(OpenCVFindLATEX.cmake REQUIRED)
\r
899 if(PDFLATEX_COMPILER)
\r
900 message(STATUS "PDF LaTeX found!")
\r
904 add_subdirectory(doc)
\r
905 add_subdirectory(data)
\r
907 if(BUILD_EXAMPLES OR INSTALL_PYTHON_EXAMPLES OR INSTALL_OCTAVE_EXAMPLES)
\r
908 add_subdirectory(samples)
\r
913 add_subdirectory(tests)
\r
916 add_subdirectory(interfaces)
\r
917 add_subdirectory(3rdparty)
\r
920 # ----------------------------------------------------------------------------
\r
922 # ----------------------------------------------------------------------------
\r
924 message(STATUS "General configuration for opencv ${OPENCV_VERSION} =====================================")
\r
926 message(STATUS " Built as dynamic libs?: ${BUILD_SHARED_LIBS}")
\r
927 message(STATUS " Compiler: ${CMAKE_COMPILER}")
\r
928 message(STATUS " C++ flags (Release): ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}")
\r
929 message(STATUS " C++ flags (Debug): ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG}")
\r
931 message(STATUS " Linker flags (Release): ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_RELEASE}")
\r
932 message(STATUS " Linker flags (Debug): ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_DEBUG}")
\r
934 message(STATUS " Linker flags (Release): ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_RELEASE}")
\r
935 message(STATUS " Linker flags (Debug): ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_DEBUG}")
\r
938 if(UNIX AND NOT APPLE)
\r
940 message(STATUS " GUI: ")
\r
941 message(STATUS " GTK+ 2.x: ${HAVE_GTK}")
\r
942 message(STATUS " GThread: ${HAVE_GTHREAD}")
\r
946 message(STATUS " Image I/O: ")
\r
947 if(NOT WITH_JPEG OR JPEG_FOUND)
\r
948 message(STATUS " JPEG: ${JPEG_FOUND}")
\r
950 message(STATUS " JPEG: build")
\r
953 if(NOT WIDTH_PNG OR PNG_FOUND)
\r
954 message(STATUS " PNG: ${PNG_FOUND}")
\r
956 message(STATUS " PNG: build")
\r
959 if(NOT WITH_TIFF OR TIFF_FOUND)
\r
960 message(STATUS " TIFF: ${TIFF_FOUND}")
\r
962 message(STATUS " TIFF: build")
\r
965 if(NOT WITH_JASPER OR JASPER_FOUND)
\r
966 message(STATUS " JPEG 2000: ${JASPER_FOUND}")
\r
968 message(STATUS " JPEG 2000: build")
\r
971 if(UNIX AND NOT APPLE)
\r
973 message(STATUS " Video I/O: ")
\r
974 message(STATUS " DC1394 1.x: ${HAVE_DC1394}")
\r
975 message(STATUS " DC1394 2.x: ${HAVE_DC1394_2}")
\r
976 message(STATUS " FFMPEG: ${HAVE_FFMPEG}")
\r
977 message(STATUS " codec: ${HAVE_FFMPEG_CODEC}")
\r
978 message(STATUS " format: ${HAVE_FFMPEG_FORMAT}")
\r
979 message(STATUS " util: ${HAVE_FFMPEG_UTIL}")
\r
980 message(STATUS " swscale: ${HAVE_FFMPEG_SWSCALE}")
\r
981 message(STATUS " gentoo-style: ${HAVE_GENTOO_FFMPEG}")
\r
982 message(STATUS " GStreamer: ${HAVE_GSTREAMER}")
\r
983 message(STATUS " UniCap: ${HAVE_UNICAP}")
\r
984 message(STATUS " PvAPI: ${HAVE_PVAPI}")
\r
986 message(STATUS " V4L/V4L2: Using libv4l")
\r
988 message(STATUS " V4L/V4L2: ${HAVE_CAMV4L}/${HAVE_CAMV4L2}")
\r
990 message(STATUS " Xine: ${HAVE_XINE}")
\r
994 message(STATUS " Interfaces: ")
\r
995 if(PYTHONLIBS_FOUND AND BUILD_SWIG_PYTHON_SUPPORT)
\r
996 message(STATUS " Old Python: 1")
\r
998 message(STATUS " Old Python: 0")
\r
1000 message(STATUS " Python: ${BUILD_NEW_PYTHON_SUPPORT}")
\r
1001 if(IPP_FOUND AND USE_IPP)
\r
1002 message(STATUS " Use IPP: ${IPP_PATH}")
\r
1004 message(STATUS " Use IPP: NO")
\r
1006 if(BUILD_LATEX_DOCS AND PDFLATEX_COMPILER)
\r
1007 message(STATUS " Build Documentation 1")
\r
1009 message(STATUS " Build Documentation 0")
\r
1011 message(STATUS "")
\r
1012 message(STATUS " Install path: ${CMAKE_INSTALL_PREFIX}")
\r
1013 message(STATUS "")
\r
1014 message(STATUS " cvconfig.h is in: ${OPENCV_CONFIG_FILE_INCLUDE_DIR}")
\r
1015 message(STATUS "-----------------------------------------------------------------")
\r
1016 message(STATUS "")
\r
1018 #----------------------------------------------------------------------------
\r
1019 # Generate the OpenCVConfig.cmake file for unix
\r
1020 # installation in CMAKE_INSTALL_PREFIX
\r
1021 #----------------------------------------------------------------------------
\r