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_GTK ON CACHE BOOL "Include GTK support")
\r
244 set(WITH_GSTREAMER ON CACHE BOOL "Include Gstreamer support")
\r
245 set(WITH_1394 ON CACHE BOOL "Include IEEE1394 support")
\r
246 set(WITH_V4L ON CACHE BOOL "Include Video 4 Linux support")
\r
247 set(WITH_XINE ON CACHE BOOL "Include Xine support")
\r
250 # ===================================================
\r
251 # Macros that checks if module have been installed.
\r
252 # After it adds module to build and define
\r
253 # constants passed as second arg
\r
254 # ===================================================
\r
256 macro(CHECK_MODULE module_name define)
\r
258 if(PKG_CONFIG_FOUND)
\r
259 set(ALIAS ALIASOF_${module_name})
\r
260 set(ALIAS_FOUND ${ALIAS}_FOUND)
\r
261 set(ALIAS_INCLUDE_DIRS ${ALIAS}_INCLUDE_DIRS)
\r
262 set(ALIAS_LIBRARY_DIRS ${ALIAS}_LIBRARY_DIRS)
\r
263 set(ALIAS_LIBRARIES ${ALIAS}_LIBRARIES)
\r
265 PKG_CHECK_MODULES(${ALIAS} ${module_name})
\r
267 if (${ALIAS_FOUND})
\r
269 foreach(P "${ALIAS_INCLUDE_DIRS}")
\r
271 list(APPEND HIGHGUI_INCLUDE_DIRS ${${P}})
\r
275 foreach(P "${ALIAS_LIBRARY_DIRS}")
\r
277 list(APPEND HIGHGUI_LIBRARY_DIRS ${${P}})
\r
281 list(APPEND HIGHGUI_LIBRARIES ${${ALIAS_LIBRARIES}})
\r
289 CHECK_MODULE(gtk+-2.0 HAVE_GTK)
\r
290 CHECK_MODULE(gthread-2.0 HAVE_GTHREAD)
\r
292 set(HAVE_GTK FALSE)
\r
293 set(HAVE_GTHREAD FALSE)
\r
296 CHECK_MODULE(gstreamer-base-0.10 HAVE_GSTREAMER)
\r
297 CHECK_MODULE(gstreamer-app-0.10 HAVE_GSTREAMER_APP)
\r
298 CHECK_MODULE(gstreamer-video-0.10 HAVE_GSTREAMER)
\r
300 set(HAVE_GSTREAMER FALSE)
\r
305 CHECK_MODULE(libunicap HAVE_UNICAP_)
\r
306 CHECK_MODULE(libucil HAVE_UNICAP_UCIL)
\r
307 if(HAVE_UNICAP_ AND HAVE_UNICAP_UCIL)
\r
311 set(HAVE_UNICAP FALSE)
\r
316 CHECK_MODULE(libavcodec HAVE_FFMPEG_CODEC)
\r
317 CHECK_MODULE(libavformat HAVE_FFMPEG_FORMAT)
\r
318 CHECK_MODULE(libavutil HAVE_FFMPEG_UTIL)
\r
319 CHECK_MODULE(libswscale HAVE_FFMPEG_SWSCALE)
\r
320 CHECK_INCLUDE_FILE(libavformat/avformat.h HAVE_GENTOO_FFMPEG)
\r
321 CHECK_INCLUDE_FILE(ffmpeg/avformat.h HAVE_FFMPEG_FFMPEG)
\r
322 if(NOT HAVE_GENTOO_FFMPEG AND NOT HAVE_FFMPEG_FFMPEG)
\r
323 if(EXISTS /usr/include/ffmpeg/libavformat/avformat.h OR HAVE_FFMPEG_SWSCALE)
\r
324 set(HAVE_GENTOO_FFMPEG 1)
\r
327 if(HAVE_FFMPEG_CODEC AND HAVE_FFMPEG_FORMAT AND HAVE_FFMPEG_UTIL)
\r
328 if(HAVE_FFMPEG_SWSCALE OR NOT HAVE_GENTOO_FFMPEG)
\r
335 CHECK_MODULE(libdc1394-2 HAVE_DC1394_2)
\r
336 if(NOT HAVE_DC1394_2)
\r
337 CHECK_MODULE(libdc1394 HAVE_DC1394)
\r
340 set(HAVE_DC1394_2 FALSE)
\r
341 set(HAVE_DC1394 FALSE)
\r
345 CHECK_INCLUDE_FILE(alloca.h HAVE_ALLOCA_H)
\r
346 CHECK_FUNCTION_EXISTS(alloca HAVE_ALLOCA)
\r
347 CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
\r
348 CHECK_INCLUDE_FILE(pthread.h HAVE_LIBPTHREAD)
\r
351 CHECK_MODULE(libxine HAVE_XINE)
\r
353 set(HAVE_XINE FALSE)
\r
356 CHECK_MODULE(libv4l1 HAVE_LIBV4L)
\r
357 CHECK_INCLUDE_FILE(linux/videodev.h HAVE_CAMV4L)
\r
358 CHECK_INCLUDE_FILE(linux/videodev2.h HAVE_CAMV4L2)
\r
360 set(HAVE_LIBV4L FALSE)
\r
361 set(HAVE_CAMV4L FALSE)
\r
362 set(HAVE_CAMV4L2 FALSE)
\r
365 if(NOT OPENCV_BUILD_3RDPARTY_LIBS)
\r
369 CHECK_INCLUDE_FILE(${PNG_PNG_INCLUDE_DIR}/png.h HAVE_PNG_H)
\r
370 CHECK_INCLUDE_FILE(${PNG_PNG_INCLUDE_DIR}/libpng/png.h HAVE_LIBPNG_PNG_H)
\r
373 set(PNG_FOUND FALSE)
\r
378 set(TIFF_FOUND FALSE)
\r
381 include(FindJasper)
\r
383 set(JASPER_FOUND FALSE)
\r
388 set(JPEG_FOUND FALSE)
\r
392 if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
\r
393 set(OPENCV_LINKER_LIBS m pthread)
\r
395 set(OPENCV_LINKER_LIBS dl m pthread rt)
\r
398 add_definitions(-DHAVE_ALLOCA -DHAVE_ALLOCA_H -DHAVE_LIBPTHREAD -DHAVE_UNISTD_H)
\r
402 set(BUILD_NEW_PYTHON_SUPPORT ON CACHE BOOL "Build with Python support")
\r
403 set(BUILD_SWIG_PYTHON_SUPPORT OFF CACHE BOOL "Build with older SWIG-based Python support")
\r
404 set(BUILD_OCTAVE_SUPPORT OFF CACHE BOOL "Build with Octave support")
\r
406 if(BUILD_SWIG_PYTHON_SUPPORT OR BUILD_NEW_PYTHON_SUPPORT)
\r
407 find_package(PythonInterp)
\r
408 find_package(PythonLibs)
\r
410 # cmake 2.4 (at least on Ubuntu 8.04 (hardy)) don't define PYTHONLIBS_FOUND
\r
411 if(NOT PYTHONLIBS_FOUND AND PYTHON_INCLUDE_PATH)
\r
412 set(PYTHONLIBS_FOUND ON)
\r
413 endif(NOT PYTHONLIBS_FOUND AND PYTHON_INCLUDE_PATH)
\r
415 execute_process(COMMAND ${PYTHON_EXECUTABLE} --version
\r
416 ERROR_VARIABLE PYTHON_VERSION_FULL
\r
417 OUTPUT_STRIP_TRAILING_WHITESPACE)
\r
419 string(REGEX MATCH "[0-9].[0-9]" PYTHON_VERSION_MAJOR_MINOR "${PYTHON_VERSION_FULL}")
\r
421 set(PYTHON_PLUGIN_INSTALL_PATH lib/python${PYTHON_VERSION_MAJOR_MINOR}/site-packages/opencv)
\r
422 set(PYTHON_PACKAGES_PATH lib/python${PYTHON_VERSION_MAJOR_MINOR}/site-packages)
\r
425 get_filename_component(PYTHON_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${PYTHON_VERSION_MAJOR_MINOR}\\InstallPath]" ABSOLUTE CACHE)
\r
426 set(PYTHON_PLUGIN_INSTALL_PATH "${PYTHON_PATH}/Lib/site-packages/opencv")
\r
427 set(PYTHON_PACKAGES_PATH "${PYTHON_PATH}/Lib/site-packages")
\r
431 if(PYTHONLIBS_FOUND AND BUILD_SWIG_PYTHON_SUPPORT)
\r
436 ############################### IPP ################################
\r
438 set(OPENCV_LOADER_PATH)
\r
442 set(OPENCV_LOADER_PATH DYLD_LIBRARY_PATH)
\r
444 set(OPENCV_LOADER_PATH LD_LIBRARY_PATH)
\r
448 foreach(v "6.1" "6.0" "5.3" "5.2" "5.1")
\r
451 find_path(IPP_PATH "ippi-${v}.dll"
\r
452 PATHS ${CMAKE_PROGRAM_PATH} ${CMAKE_SYSTEM_PROGRAM_PATH}
\r
453 DOC "The path to IPP dynamic libraries")
\r
455 find_path(IPP_PATH "ippiem64t-${v}.dll"
\r
456 PATHS ${CMAKE_PROGRAM_PATH} ${CMAKE_SYSTEM_PROGRAM_PATH}
\r
457 DOC "The path to IPP dynamic libraries")
\r
461 find_path(IPP_PATH "libippi${CMAKE_SHARED_LIBRARY_SUFFIX}.${v}"
\r
462 PATHS ${CMAKE_LIBRARY_PATH} ${CMAKE_SYSTEM_LIBRARY_PATH} ENV ${OPENCV_LOADER_PATH}
\r
463 DOC "The path to IPP dynamic libraries")
\r
465 find_path(IPP_PATH "libippiem64t${CMAKE_SHARED_LIBRARY_SUFFIX}.${v}"
\r
466 PATHS ${CMAKE_LIBRARY_PATH} ${CMAKE_SYSTEM_LIBRARY_PATH} ENV ${OPENCV_LOADER_PATH}
\r
467 DOC "The path to IPP dynamic libraries")
\r
471 file(GLOB IPP_HDRS "${IPP_PATH}/../include")
\r
473 set(IPP_FOUND TRUE)
\r
479 message(STATUS "IPP detected: ${IPP_FOUND}")
\r
481 if(WIN32 AND NOT MSVC)
\r
485 set(USE_IPP ${IPP_FOUND} CACHE BOOL "Use IPP when available")
\r
487 if(IPP_FOUND AND USE_IPP)
\r
488 add_definitions(-DHAVE_IPP)
\r
489 include_directories("${IPP_PATH}/../include")
\r
490 link_directories("${IPP_PATH}/../lib")
\r
492 file(GLOB em64t_files "${IPP_PATH}/../lib/*em64t*")
\r
495 set(IPP_ARCH "em64t")
\r
498 set(A ${CMAKE_STATIC_LIBRARY_PREFIX})
\r
499 set(B ${IPP_ARCH}${CMAKE_STATIC_LIBRARY_SUFFIX})
\r
505 set(IPP_LIBS ${A}ippsmerged${B} ${A}ippsemerged${B}
\r
506 ${A}ippimerged${B} ${A}ippiemerged${B}
\r
507 ${A}ippvmmerged${B} ${A}ippvmemerged${B}
\r
508 ${A}ippccmerged${B} ${A}ippccemerged${B}
\r
509 ${A}ippcvmerged${B} ${A}ippcvemerged${B}
\r
510 ${A}ippcore${IPP_ARCH}${L}${CMAKE_STATIC_LIBRARY_SUFFIX})
\r
514 ################## LATEX ##################
\r
515 set(BUILD_LATEX_DOCS OFF CACHE BOOL "Build LaTeX OpenCV Documentation")
\r
517 # ----------------------------------------------------------------------------
\r
518 # UPDATE CONFIG FILES & SCRIPTS:
\r
520 # CONFIGURE_FILE(InputFile OutputFile [COPYONLY] [ESCAPE_QUOTES] [@ONLY])
\r
521 # If @ONLY is specified, only variables of the form @VAR@ will be
\r
522 # replaces and ${VAR} will be ignored.
\r
524 # A directory will be created for each platform so the "cvconfig.h" file is
\r
525 # not overwritten if cmake generates code in the same path.
\r
526 # ----------------------------------------------------------------------------
\r
527 add_definitions(-DHAVE_CONFIG_H)
\r
529 set(OPENCV_CONFIG_FILE_INCLUDE_DIR "${CMAKE_BINARY_DIR}/" CACHE PATH "Where to create the platform-dependant cvconfig.h")
\r
531 message(STATUS "Parsing 'cvconfig.h.cmake'")
\r
532 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cvconfig.h.cmake" "${OPENCV_CONFIG_FILE_INCLUDE_DIR}/cvconfig.h")
\r
534 # ---------------------------------------------------------------------------
\r
535 # The C+//0 include & link directories:
\r
536 # ---------------------------------------------------------------------------
\r
537 include_directories("."
\r
538 "${OPENCV_CONFIG_FILE_INCLUDE_DIR}"
\r
539 "${CMAKE_CURRENT_SOURCE_DIR}/include"
\r
540 "${CMAKE_CURRENT_SOURCE_DIR}/include/opencv"
\r
543 # ----------------------------------------------------------------------------
\r
544 # Set the maximum level of warnings:
\r
545 # ----------------------------------------------------------------------------
\r
546 # Should be set to true for development
\r
547 set(OPENCV_WARNINGS_ARE_ERRORS OFF CACHE BOOL "Treat warnings as errors")
\r
549 # Whole program optimization?
\r
550 set(OPENCV_WHOLE_PROGRAM_OPTIMIZATION OFF CACHE BOOL "Flags for whole program optimization.")
\r
552 set(EXTRA_C_FLAGS "")
\r
553 set(EXTRA_C_FLAGS_RELEASE "")
\r
554 set(EXTRA_C_FLAGS_DEBUG "")
\r
555 set(EXTRA_EXE_LINKER_FLAGS "")
\r
556 set(EXTRA_EXE_LINKER_FLAGS_RELEASE "")
\r
557 set(EXTRA_EXE_LINKER_FLAGS_DEBUG "")
\r
560 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS")
\r
561 # 64-bit portability warnings, in MSVC8
\r
563 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} /Wp64")
\r
566 # set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} /D _BIND_TO_CURRENT_CRT_VERSION=1 /D _BIND_TO_CURRENT_VCLIBS_VERSION=1")
\r
569 set(EXTRA_EXE_LINKER_FLAGS_RELEASE "${EXTRA_EXE_LINKER_FLAGS_RELEASE} /debug")
\r
571 # Whole program optimization
\r
572 if(OPENCV_WHOLE_PROGRAM_OPTIMIZATION AND MSVC_VERSION GREATER 1300)
\r
573 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /GL")
\r
574 set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")
\r
575 set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG")
\r
579 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /openmp")
\r
582 # Remove unreferenced functions: function level linking
\r
583 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} /Gy")
\r
584 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} /Zi")
\r
587 if(CMAKE_COMPILER_IS_GNUCXX)
\r
588 # High level of warnings.
\r
589 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wall")
\r
591 # The -Wno-long-long is required in 64bit systems when including sytem headers.
\r
592 if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86_64*)
\r
593 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-long-long")
\r
595 if(${CMAKE_SYSTEM_PROCESSOR} MATCHES amd64*)
\r
596 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-long-long")
\r
599 # We need pthread's
\r
601 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -pthread")
\r
604 if(OPENCV_WARNINGS_ARE_ERRORS)
\r
605 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Werror")
\r
608 # Whole program optimization
\r
609 if(OPENCV_WHOLE_PROGRAM_OPTIMIZATION)
\r
610 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -fwhole-program --combine")
\r
613 # Other optimizations
\r
614 if(USE_OMIT_FRAME_POINTER)
\r
615 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -fomit-frame-pointer")
\r
618 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -O2")
\r
621 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -O3")
\r
624 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -ffast-math")
\r
627 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -mcpu=G3 -mtune=G5")
\r
630 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -mmmx")
\r
633 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse")
\r
636 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse2")
\r
638 # SSE3 should be disabled under MingW because it generates compiler errors
\r
639 if(USE_SSE3 AND NOT MINGW)
\r
640 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse3")
\r
644 if(ENABLE_PROFILING)
\r
645 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -pg -g")
\r
647 # Remove unreferenced functions: function level linking
\r
649 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -ffunction-sections")
\r
655 set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -D_GLIBCXX_PARALLEL -fopenmp")
\r
656 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} gomp)
\r
659 set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -DNDEBUG")
\r
660 set(EXTRA_C_FLAGS_DEBUG "${EXTRA_C_FLAGS_DEBUG} -O0 -DDEBUG -D_DEBUG")
\r
663 # Extra link libs if the user selects building static libs:
\r
664 IF(NOT BUILD_SHARED_LIBS)
\r
665 if(CMAKE_COMPILER_IS_GNUCXX)
\r
666 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} stdc++)
\r
669 set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} flann zlib opencv_lapack)
\r
673 # Add user supplied extra options (optimization, etc...)
\r
674 # ==========================================================
\r
675 set(OPENCV_EXTRA_C_FLAGS "" CACHE STRING "Extra compiler options")
\r
676 set(OPENCV_EXTRA_C_FLAGS_RELEASE "" CACHE STRING "Extra compiler options for Release build")
\r
677 set(OPENCV_EXTRA_C_FLAGS_DEBUG "" CACHE STRING "Extra compiler options for Debug build")
\r
678 set(OPENCV_EXTRA_EXE_LINKER_FLAGS "" CACHE STRING "Extra linker flags" FORCE)
\r
679 set(OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE "" CACHE STRING "Extra linker flags for Release build" FORCE)
\r
680 set(OPENCV_EXTRA_EXE_LINKER_FLAGS_DEBUG "" CACHE STRING "Extra linker flags for Debug build" FORCE)
\r
682 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS} ${OPENCV_EXTRA_C_FLAGS}")
\r
683 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_C_FLAGS} ${OPENCV_EXTRA_C_FLAGS}")
\r
684 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${EXTRA_C_FLAGS_RELEASE} ${OPENCV_EXTRA_C_FLAGS_RELEASE}")
\r
685 set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${EXTRA_C_FLAGS_RELEASE} ${OPENCV_EXTRA_C_FLAGS_RELEASE}")
\r
686 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${EXTRA_C_FLAGS_DEBUG} ${OPENCV_EXTRA_C_FLAGS_DEBUG}")
\r
687 set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${EXTRA_C_FLAGS_DEBUG} ${OPENCV_EXTRA_C_FLAGS_DEBUG}")
\r
688 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${EXTRA_EXE_LINKER_FLAGS} ${OPENCV_EXTRA_EXE_LINKER_FLAGS}")
\r
689 set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${EXTRA_EXE_LINKER_FLAGS_RELEASE} ${OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE}")
\r
690 set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${EXTRA_EXE_LINKER_FLAGS_DEBUG} ${OPENCV_EXTRA_EXE_LINKER_FLAGS_DEBUG}")
\r
692 # In case of Makefiles if the user does not setup CMAKE_BUILD_TYPE, assume it's Release:
\r
693 if (${CMAKE_GENERATOR} MATCHES ".*Makefiles")
\r
694 if("${CMAKE_BUILD_TYPE}" STREQUAL "")
\r
695 set(CMAKE_BUILD_TYPE Release)
\r
699 if (WIN32 AND MSVC)
\r
700 # avoid warnings from MSVC about overriding the /W* option
\r
701 # we replace /W3 with /W4 only for C++ files,
\r
702 # since all the 3rd-party libraries OpenCV uses are in C,
\r
703 # and we do not care about their warnings.
\r
704 string(REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
\r
705 string(REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
\r
706 string(REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
\r
708 # allow extern "C" functions throw exceptions
\r
709 string(REPLACE "/EHsc" "/EHsc-" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
\r
710 string(REPLACE "/EHsc" "/EHsc-" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
\r
711 string(REPLACE "/EHsc" "/EHsc-" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
\r
712 string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
\r
713 string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
\r
714 string(REPLACE "/EHsc" "/EHsc-" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
\r
717 if("${CMAKE_CONFIGURE_LDFLAGS}")
\r
718 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_CONFIGURE_LDFLAGS}")
\r
719 endif("${CMAKE_CONFIGURE_LDFLAGS}")
\r
721 # ----------------------------------------------------------------------------
\r
722 # PROCESS SUBDIRECTORIES:
\r
723 # ----------------------------------------------------------------------------
\r
724 # Save libs and executables in the same place
\r
725 set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE PATH "Output directory for libraries" )
\r
726 set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE PATH "Output directory for applications" )
\r
729 set(OPENCV_DOC_INSTALL_PATH doc)
\r
731 set(OPENCV_DOC_INSTALL_PATH share/opencv/doc)
\r
734 # --------------------------------------------------------------------------------------------
\r
735 # Installation for CMake Module: OpenCVConfig.cmake
\r
736 # Part 1/3: ${BIN_DIR}/OpenCVConfig.cmake -> For use *without* "make install"
\r
737 # Part 2/3: ${BIN_DIR}/unix-install/OpenCVConfig.cmake -> For use with "make install"
\r
738 # Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages
\r
739 # -------------------------------------------------------------------------------------------
\r
741 # -------------------------------------------------------------------------------------------
\r
742 # Part 1/3: ${BIN_DIR}/OpenCVConfig.cmake -> For use *without* "make install"
\r
743 # -------------------------------------------------------------------------------------------
\r
745 # Name of libraries is: libcv.so.1.1.0, etc...
\r
746 # OPENCV_DLLVERSION must be set to "110", etc..
\r
747 # Already done above.
\r
749 # Set CMAKE_INCLUDE_DIRS_CONFIGCMAKE to the list of include directories:
\r
750 set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"${OPENCV_CONFIG_FILE_INCLUDE_DIR}\" \"${CMAKE_CURRENT_SOURCE_DIR}/include\" \"${CMAKE_CURRENT_SOURCE_DIR}/include/opencv\"")
\r
752 set(CMAKE_LIB_DIRS_CONFIGCMAKE "${LIBRARY_OUTPUT_PATH}")
\r
754 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/OpenCVConfig.cmake" IMMEDIATE @ONLY)
\r
756 # --------------------------------------------------------------------------------------------
\r
757 # Part 2/3: ${BIN_DIR}/unix-install/OpenCVConfig.cmake -> For use *with* "make install"
\r
758 # -------------------------------------------------------------------------------------------
\r
759 # Set CMAKE_INCLUDE_DIRS_CONFIGCMAKE to the list of include directories:
\r
761 set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}/include/opencv")
\r
762 set(CMAKE_LIB_DIRS_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}/lib")
\r
764 #exec_program(${CMAKE_COMMAND} ARGS "-E make_directory \"${CMAKE_BINARY_DIR}/unix-install/\"")
\r
765 exec_program(mkdir ARGS "-p \"${CMAKE_BINARY_DIR}/unix-install/\"")
\r
766 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCVConfig.cmake" IMMEDIATE @ONLY)
\r
769 # For a command "FIND_PACKAGE(FOO)", CMake will look at the directory /usr/share|lib/FOO/FOOConfig.cmake, so:
\r
770 install(FILES ${CMAKE_BINARY_DIR}/unix-install/OpenCVConfig.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/share/opencv/)
\r
773 # --------------------------------------------------------------------------------------------
\r
774 # Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages
\r
775 # -------------------------------------------------------------------------------------------
\r
777 # Set CMAKE_INCLUDE_DIRS_CONFIGCMAKE to the list of include directories:
\r
779 # This will expand to, for example, <program files>/OpenCV 1.1.0/include
\r
780 set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/include\" \"\${THIS_OPENCV_CONFIG_PATH}/include/opencv\"")
\r
782 # This will expand to, for example, <program files>/OpenCV 1.1.0/lib
\r
783 set(CMAKE_LIB_DIRS_CONFIGCMAKE "\"\${THIS_OPENCV_CONFIG_PATH}/lib\"")
\r
785 #exec_program(${CMAKE_COMMAND} ARGS "-E make_directory \"${CMAKE_BINARY_DIR}/win-install/\"")
\r
786 exec_program(mkdir ARGS "-p \"${CMAKE_BINARY_DIR}/win-install/\"")
\r
787 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" IMMEDIATE @ONLY)
\r
791 # --------------------------------------------------------------------------------------------
\r
792 # Part 2/2: ${BIN_DIR}/unix-install/opencv.pc -> For use *with* "make install"
\r
794 # exec_prefix=${prefix}
\r
795 # libdir=${exec_prefix}/lib
\r
796 # includedir=${prefix}/include/opencv
\r
797 # -------------------------------------------------------------------------------------------
\r
798 set(prefix ${CMAKE_INSTALL_PREFIX})
\r
799 set(exec_prefix "\${prefix}")
\r
800 set(libdir "\${exec_prefix}/lib")
\r
801 set(includedir "\${prefix}/include")
\r
802 set(VERSION ${OPENCV_VERSION})
\r
804 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/opencv.pc.cmake.in" "${CMAKE_BINARY_DIR}/unix-install/opencv.pc" @ONLY IMMEDIATE)
\r
807 install(FILES ${CMAKE_BINARY_DIR}/unix-install/opencv.pc DESTINATION lib/pkgconfig)
\r
811 # ----------------------------------------------------------------------------
\r
812 # Uninstall target, for "make uninstall"
\r
813 # ----------------------------------------------------------------------------
\r
815 "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
\r
816 "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
\r
819 ADD_CUSTOM_TARGET(uninstall
\r
820 "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
\r
823 # ----------------------------------------------------------------------------
\r
825 # ----------------------------------------------------------------------------
\r
827 set(BUILD_PACKAGE OFF CACHE BOOL "Build a installer with the SDK")
\r
833 ${CMAKE_BINARY_DIR}/.cpack/Package.cmake
\r
837 include(${CMAKE_BINARY_DIR}/.cpack/Package.cmake)
\r
839 set(root_files README)
\r
841 file(GLOB root_src_files *.in *.cmake CMakeLists.txt)
\r
844 install(FILES ${root_files}
\r
845 DESTINATION ${OPENCV_DOC_INSTALL_PATH}
\r
848 install(FILES ${root_files}
\r
851 install(FILES ${root_src_files}
\r
854 # Add the "win-install/OpenCVConfig.cmake" file to the "main" install component
\r
856 "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake"
\r
861 if(CMAKE_INSTALL_DEBUG_LIBRARIES)
\r
862 foreach(m cxcore cv cvaux ml highgui opencv_ffmpeg)
\r
863 install(FILES ${CMAKE_BINARY_DIR}/bin/Debug/${m}${OPENCV_DLLVERSION}d.dll
\r
864 DESTINATION bin COMPONENT main)
\r
865 install(FILES ${CMAKE_BINARY_DIR}/lib/Debug/${m}${OPENCV_DLLVERSION}d.lib
\r
866 DESTINATION lib COMPONENT main)
\r
870 install(DIRECTORY data samples DESTINATION "." COMPONENT main PATTERN ".svn" EXCLUDE)
\r
871 install(DIRECTORY 3rdparty apps interfaces src tests utils DESTINATION "." COMPONENT src PATTERN ".svn" EXCLUDE)
\r
872 install(DIRECTORY doc/ DESTINATION doc COMPONENT src FILES_MATCHING PATTERN "*.tex")
\r
873 install(DIRECTORY doc/pics DESTINATION doc COMPONENT src PATTERN ".svn" EXCLUDE)
\r
874 install(DIRECTORY doc/plastex DESTINATION doc COMPONENT src PATTERN ".svn" EXCLUDE)
\r
880 #-----------------------------------
\r
882 #-----------------------------------
\r
883 add_subdirectory(src)
\r
884 add_subdirectory(apps)
\r
886 if(BUILD_LATEX_DOCS)
\r
887 include(OpenCVFindLATEX.cmake REQUIRED)
\r
889 if(PDFLATEX_COMPILER)
\r
890 message(STATUS "PDF LaTeX found!")
\r
894 add_subdirectory(doc)
\r
895 add_subdirectory(data)
\r
897 if(BUILD_EXAMPLES OR INSTALL_PYTHON_EXAMPLES OR INSTALL_OCTAVE_EXAMPLES)
\r
898 add_subdirectory(samples)
\r
903 add_subdirectory(tests)
\r
906 add_subdirectory(interfaces)
\r
907 add_subdirectory(3rdparty)
\r
910 # ----------------------------------------------------------------------------
\r
912 # ----------------------------------------------------------------------------
\r
914 message(STATUS "General configuration for opencv ${OPENCV_VERSION} =====================================")
\r
916 message(STATUS " Built as dynamic libs?: ${BUILD_SHARED_LIBS}")
\r
917 message(STATUS " Compiler: ${CMAKE_COMPILER}")
\r
918 message(STATUS " C++ flags (Release): ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}")
\r
919 message(STATUS " C++ flags (Debug): ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG}")
\r
921 message(STATUS " Linker flags (Release): ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_RELEASE}")
\r
922 message(STATUS " Linker flags (Debug): ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_DEBUG}")
\r
924 message(STATUS " Linker flags (Release): ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_RELEASE}")
\r
925 message(STATUS " Linker flags (Debug): ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_DEBUG}")
\r
928 if(UNIX AND NOT APPLE)
\r
930 message(STATUS " GUI: ")
\r
931 message(STATUS " GTK+ 2.x: ${HAVE_GTK}")
\r
932 message(STATUS " GThread: ${HAVE_GTHREAD}")
\r
936 message(STATUS " Image I/O: ")
\r
937 if(NOT WITH_JPEG OR JPEG_FOUND)
\r
938 message(STATUS " JPEG: ${JPEG_FOUND}")
\r
940 message(STATUS " JPEG: build")
\r
943 if(NOT WIDTH_PNG OR PNG_FOUND)
\r
944 message(STATUS " PNG: ${PNG_FOUND}")
\r
946 message(STATUS " PNG: build")
\r
949 if(NOT WITH_TIFF OR TIFF_FOUND)
\r
950 message(STATUS " TIFF: ${TIFF_FOUND}")
\r
952 message(STATUS " TIFF: build")
\r
955 if(NOT WITH_JASPER OR JASPER_FOUND)
\r
956 message(STATUS " JPEG 2000: ${JASPER_FOUND}")
\r
958 message(STATUS " JPEG 2000: build")
\r
961 if(UNIX AND NOT APPLE)
\r
963 message(STATUS " Video I/O: ")
\r
964 message(STATUS " DC1394 1.x: ${HAVE_DC1394}")
\r
965 message(STATUS " DC1394 2.x: ${HAVE_DC1394_2}")
\r
966 message(STATUS " FFMPEG: ${HAVE_FFMPEG}")
\r
967 message(STATUS " codec: ${HAVE_FFMPEG_CODEC}")
\r
968 message(STATUS " format: ${HAVE_FFMPEG_FORMAT}")
\r
969 message(STATUS " util: ${HAVE_FFMPEG_UTIL}")
\r
970 message(STATUS " swscale: ${HAVE_FFMPEG_SWSCALE}")
\r
971 message(STATUS " gentoo-style: ${HAVE_GENTOO_FFMPEG}")
\r
972 message(STATUS " GStreamer: ${HAVE_GSTREAMER}")
\r
973 message(STATUS " UniCap: ${HAVE_UNICAP}")
\r
975 message(STATUS " V4L/V4L2: Using libv4l")
\r
977 message(STATUS " V4L/V4L2: ${HAVE_CAMV4L}/${HAVE_CAMV4L2}")
\r
979 message(STATUS " Xine: ${HAVE_XINE}")
\r
983 message(STATUS " Interfaces: ")
\r
984 if(PYTHONLIBS_FOUND AND BUILD_SWIG_PYTHON_SUPPORT)
\r
985 message(STATUS " Old Python: 1")
\r
987 message(STATUS " Old Python: 0")
\r
989 message(STATUS " Python: ${BUILD_NEW_PYTHON_SUPPORT}")
\r
990 if(IPP_FOUND AND USE_IPP)
\r
991 message(STATUS " Use IPP: ${IPP_PATH}")
\r
993 message(STATUS " Use IPP: NO")
\r
995 if(BUILD_LATEX_DOCS AND PDFLATEX_COMPILER)
\r
996 message(STATUS " Build Documentation 1")
\r
998 message(STATUS " Build Documentation 0")
\r
1000 message(STATUS "")
\r
1001 message(STATUS " Install path: ${CMAKE_INSTALL_PREFIX}")
\r
1002 message(STATUS "")
\r
1003 message(STATUS " cvconfig.h is in: ${OPENCV_CONFIG_FILE_INCLUDE_DIR}")
\r
1004 message(STATUS "-----------------------------------------------------------------")
\r
1005 message(STATUS "")
\r
1007 #----------------------------------------------------------------------------
\r
1008 # Generate the OpenCVConfig.cmake file for unix
\r
1009 # installation in CMAKE_INSTALL_PREFIX
\r
1010 #----------------------------------------------------------------------------
\r