CLAHE Python bindings
[profile/ivi/opencv.git] / cmake / OpenCVFindLibsGrfmt.cmake
1 # ----------------------------------------------------------------------------
2 #  Detect 3rd-party image IO libraries
3 # ----------------------------------------------------------------------------
4
5 # --- zlib (required) ---
6 if(BUILD_ZLIB)
7   ocv_clear_vars(ZLIB_FOUND)
8 else()
9   include(FindZLIB)
10   if(ZLIB_FOUND AND ANDROID)
11     if(ZLIB_LIBRARY STREQUAL "${ANDROID_SYSROOT}/usr/lib/libz.so")
12       set(ZLIB_LIBRARY z)
13       set(ZLIB_LIBRARIES z)
14     endif()
15   endif()
16 endif()
17
18 if(NOT ZLIB_FOUND)
19   ocv_clear_vars(ZLIB_LIBRARY ZLIB_LIBRARIES ZLIB_INCLUDE_DIR)
20
21   set(ZLIB_LIBRARY zlib)
22   set(ZLIB_LIBRARIES ${ZLIB_LIBRARY})
23   add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/zlib")
24   set(ZLIB_INCLUDE_DIR "${${ZLIB_LIBRARY}_SOURCE_DIR}" "${${ZLIB_LIBRARY}_BINARY_DIR}")
25
26   ocv_parse_header2(ZLIB "${${ZLIB_LIBRARY}_SOURCE_DIR}/zlib.h" ZLIB_VERSION)
27 endif()
28
29 # --- libtiff (optional, should be searched after zlib) ---
30 if(WITH_TIFF)
31   if(BUILD_TIFF)
32     ocv_clear_vars(TIFF_FOUND)
33   else()
34     include(FindTIFF)
35     if(TIFF_FOUND)
36       ocv_parse_header("${TIFF_INCLUDE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION)
37     endif()
38   endif()
39 endif()
40
41 if(WITH_TIFF AND NOT TIFF_FOUND)
42   ocv_clear_vars(TIFF_LIBRARY TIFF_LIBRARIES TIFF_INCLUDE_DIR)
43
44   set(TIFF_LIBRARY libtiff)
45   set(TIFF_LIBRARIES ${TIFF_LIBRARY})
46   add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libtiff")
47   set(TIFF_INCLUDE_DIR "${${TIFF_LIBRARY}_SOURCE_DIR}" "${${TIFF_LIBRARY}_BINARY_DIR}")
48   ocv_parse_header("${${TIFF_LIBRARY}_SOURCE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION)
49 endif()
50
51 if(TIFF_VERSION_CLASSIC AND NOT TIFF_VERSION)
52   set(TIFF_VERSION ${TIFF_VERSION_CLASSIC})
53 endif()
54
55 if(TIFF_BIGTIFF_VERSION AND NOT TIFF_VERSION_BIG)
56   set(TIFF_VERSION_BIG ${TIFF_BIGTIFF_VERSION})
57 endif()
58
59 if(NOT TIFF_VERSION_STRING AND TIFF_INCLUDE_DIR)
60   list(GET TIFF_INCLUDE_DIR 0 _TIFF_INCLUDE_DIR)
61   if(EXISTS "${_TIFF_INCLUDE_DIR}/tiffvers.h")
62     file(STRINGS "${_TIFF_INCLUDE_DIR}/tiffvers.h" tiff_version_str REGEX "^#define[\t ]+TIFFLIB_VERSION_STR[\t ]+\"LIBTIFF, Version .*")
63     string(REGEX REPLACE "^#define[\t ]+TIFFLIB_VERSION_STR[\t ]+\"LIBTIFF, Version +([^ \\n]*).*" "\\1" TIFF_VERSION_STRING "${tiff_version_str}")
64     unset(tiff_version_str)
65   endif()
66   unset(_TIFF_INCLUDE_DIR)
67 endif()
68
69 # --- libjpeg (optional) ---
70 if(WITH_JPEG AND NOT IOS)
71   if(BUILD_JPEG)
72     ocv_clear_vars(JPEG_FOUND)
73   else()
74     include(FindJPEG)
75   endif()
76 endif()
77
78 if(WITH_JPEG AND NOT JPEG_FOUND)
79   ocv_clear_vars(JPEG_LIBRARY JPEG_LIBRARIES JPEG_INCLUDE_DIR)
80
81   set(JPEG_LIBRARY libjpeg)
82   set(JPEG_LIBRARIES ${JPEG_LIBRARY})
83   add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjpeg")
84   set(JPEG_INCLUDE_DIR "${${JPEG_LIBRARY}_SOURCE_DIR}")
85 endif()
86
87 ocv_parse_header("${JPEG_INCLUDE_DIR}/jpeglib.h" JPEG_VERSION_LINES JPEG_LIB_VERSION)
88
89
90 # --- libjasper (optional, should be searched after libjpeg) ---
91 if(WITH_JASPER)
92   if(BUILD_JASPER)
93     ocv_clear_vars(JASPER_FOUND)
94   else()
95     include(FindJasper)
96   endif()
97 endif()
98
99 if(WITH_JASPER AND NOT JASPER_FOUND)
100   ocv_clear_vars(JASPER_LIBRARY JASPER_LIBRARIES JASPER_INCLUDE_DIR)
101
102   set(JASPER_LIBRARY libjasper)
103   set(JASPER_LIBRARIES ${JASPER_LIBRARY})
104   add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjasper")
105   set(JASPER_INCLUDE_DIR "${${JASPER_LIBRARY}_SOURCE_DIR}")
106 endif()
107
108 if(NOT JASPER_VERSION_STRING)
109   ocv_parse_header2(JASPER "${JASPER_INCLUDE_DIR}/jasper/jas_config.h" JAS_VERSION "")
110 endif()
111
112 # --- libpng (optional, should be searched after zlib) ---
113 if(WITH_PNG AND NOT IOS)
114   if(BUILD_PNG)
115     ocv_clear_vars(PNG_FOUND)
116   else()
117     include(FindPNG)
118     if(PNG_FOUND)
119       include(CheckIncludeFile)
120       check_include_file("${PNG_PNG_INCLUDE_DIR}/png.h"        HAVE_PNG_H)
121       check_include_file("${PNG_PNG_INCLUDE_DIR}/libpng/png.h" HAVE_LIBPNG_PNG_H)
122       if(HAVE_PNG_H)
123         ocv_parse_header("${PNG_PNG_INCLUDE_DIR}/png.h" PNG_VERSION_LINES PNG_LIBPNG_VER_MAJOR PNG_LIBPNG_VER_MINOR PNG_LIBPNG_VER_RELEASE)
124       elseif(HAVE_LIBPNG_PNG_H)
125         ocv_parse_header("${PNG_PNG_INCLUDE_DIR}/libpng/png.h" PNG_VERSION_LINES PNG_LIBPNG_VER_MAJOR PNG_LIBPNG_VER_MINOR PNG_LIBPNG_VER_RELEASE)
126       endif()
127     endif()
128   endif()
129 endif()
130
131 if(WITH_PNG AND NOT PNG_FOUND)
132   ocv_clear_vars(PNG_LIBRARY PNG_LIBRARIES PNG_INCLUDE_DIR PNG_PNG_INCLUDE_DIR HAVE_PNG_H HAVE_LIBPNG_PNG_H PNG_DEFINITIONS)
133
134   set(PNG_LIBRARY libpng)
135   set(PNG_LIBRARIES ${PNG_LIBRARY})
136   add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libpng")
137   set(PNG_INCLUDE_DIR "${${PNG_LIBRARY}_SOURCE_DIR}")
138   set(PNG_DEFINITIONS "")
139   ocv_parse_header("${PNG_INCLUDE_DIR}/png.h" PNG_VERSION_LINES PNG_LIBPNG_VER_MAJOR PNG_LIBPNG_VER_MINOR PNG_LIBPNG_VER_RELEASE)
140 endif()
141
142 set(PNG_VERSION "${PNG_LIBPNG_VER_MAJOR}.${PNG_LIBPNG_VER_MINOR}.${PNG_LIBPNG_VER_RELEASE}")
143
144 # --- OpenEXR (optional) ---
145 if(WITH_OPENEXR)
146   if(BUILD_OPENEXR)
147     ocv_clear_vars(OPENEXR_FOUND)
148   else()
149     include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake")
150   endif()
151 endif()
152
153 if(WITH_OPENEXR AND NOT OPENEXR_FOUND)
154   ocv_clear_vars(OPENEXR_INCLUDE_PATHS OPENEXR_LIBRARIES OPENEXR_ILMIMF_LIBRARY OPENEXR_VERSION)
155
156   set(OPENEXR_LIBRARIES IlmImf)
157   set(OPENEXR_ILMIMF_LIBRARY IlmImf)
158   add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/openexr")
159 endif()
160
161 #cmake 2.8.2 bug - it fails to determine zlib version
162 if(ZLIB_FOUND)
163   ocv_parse_header2(ZLIB "${ZLIB_INCLUDE_DIR}/zlib.h" ZLIB_VERSION)
164 endif()