1 # ----------------------------------------------------------------------------
2 # Detect 3rd-party image IO libraries
3 # ----------------------------------------------------------------------------
5 # --- zlib (required) ---
7 ocv_clear_vars(ZLIB_FOUND)
10 if(ZLIB_FOUND AND ANDROID)
11 if(ZLIB_LIBRARY STREQUAL "${ANDROID_SYSROOT}/usr/lib/libz.so")
19 ocv_clear_vars(ZLIB_LIBRARY ZLIB_LIBRARIES ZLIB_INCLUDE_DIR)
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}")
26 ocv_parse_header2(ZLIB "${${ZLIB_LIBRARY}_SOURCE_DIR}/zlib.h" ZLIB_VERSION)
29 # --- libtiff (optional, should be searched after zlib) ---
32 ocv_clear_vars(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)
41 if(WITH_TIFF AND NOT TIFF_FOUND)
42 ocv_clear_vars(TIFF_LIBRARY TIFF_LIBRARIES TIFF_INCLUDE_DIR)
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)
51 if(TIFF_VERSION_CLASSIC AND NOT TIFF_VERSION)
52 set(TIFF_VERSION ${TIFF_VERSION_CLASSIC})
55 if(TIFF_BIGTIFF_VERSION AND NOT TIFF_VERSION_BIG)
56 set(TIFF_VERSION_BIG ${TIFF_BIGTIFF_VERSION})
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)
66 unset(_TIFF_INCLUDE_DIR)
69 # --- libjpeg (optional) ---
70 if(WITH_JPEG AND NOT IOS)
72 ocv_clear_vars(JPEG_FOUND)
78 if(WITH_JPEG AND NOT JPEG_FOUND)
79 ocv_clear_vars(JPEG_LIBRARY JPEG_LIBRARIES JPEG_INCLUDE_DIR)
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}")
87 ocv_parse_header("${JPEG_INCLUDE_DIR}/jpeglib.h" JPEG_VERSION_LINES JPEG_LIB_VERSION)
90 # --- libjasper (optional, should be searched after libjpeg) ---
93 ocv_clear_vars(JASPER_FOUND)
99 if(WITH_JASPER AND NOT JASPER_FOUND)
100 ocv_clear_vars(JASPER_LIBRARY JASPER_LIBRARIES JASPER_INCLUDE_DIR)
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}")
108 if(NOT JASPER_VERSION_STRING)
109 ocv_parse_header2(JASPER "${JASPER_INCLUDE_DIR}/jasper/jas_config.h" JAS_VERSION "")
112 # --- libpng (optional, should be searched after zlib) ---
113 if(WITH_PNG AND NOT IOS)
115 ocv_clear_vars(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)
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)
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)
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)
142 set(PNG_VERSION "${PNG_LIBPNG_VER_MAJOR}.${PNG_LIBPNG_VER_MINOR}.${PNG_LIBPNG_VER_RELEASE}")
144 # --- OpenEXR (optional) ---
147 ocv_clear_vars(OPENEXR_FOUND)
149 include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake")
153 if(WITH_OPENEXR AND NOT OPENEXR_FOUND)
154 ocv_clear_vars(OPENEXR_INCLUDE_PATHS OPENEXR_LIBRARIES OPENEXR_ILMIMF_LIBRARY OPENEXR_VERSION)
156 set(OPENEXR_LIBRARIES IlmImf)
157 set(OPENEXR_ILMIMF_LIBRARY IlmImf)
158 add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/openexr")
161 #cmake 2.8.2 bug - it fails to determine zlib version
163 ocv_parse_header2(ZLIB "${ZLIB_INCLUDE_DIR}/zlib.h" ZLIB_VERSION)