OpenCVFindLibsGrfmt.cmake 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. # ----------------------------------------------------------------------------
  2. # Detect 3rd-party image IO libraries
  3. # ----------------------------------------------------------------------------
  4. # --- zlib (required) ---
  5. if(WITH_ZLIB_NG)
  6. ocv_clear_vars(ZLIB_LIBRARY ZLIB_LIBRARIES ZLIB_INCLUDE_DIR)
  7. set(ZLIB_LIBRARY zlib CACHE INTERNAL "")
  8. add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/zlib-ng")
  9. set(ZLIB_INCLUDE_DIR "${${ZLIB_LIBRARY}_BINARY_DIR}" CACHE INTERNAL "")
  10. set(ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR})
  11. set(ZLIB_LIBRARIES ${ZLIB_LIBRARY})
  12. ocv_parse_header_version(ZLIB "${${ZLIB_LIBRARY}_SOURCE_DIR}/zlib.h.in" ZLIB_VERSION)
  13. ocv_parse_header_version(ZLIBNG "${${ZLIB_LIBRARY}_SOURCE_DIR}/zlib.h.in" ZLIBNG_VERSION)
  14. set(HAVE_ZLIB_NG YES)
  15. else()
  16. if(BUILD_ZLIB)
  17. ocv_clear_vars(ZLIB_FOUND)
  18. else()
  19. ocv_clear_internal_cache_vars(ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
  20. if(ANDROID)
  21. set(_zlib_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
  22. set(CMAKE_FIND_LIBRARY_SUFFIXES .so)
  23. endif()
  24. if(QNX)
  25. set(ZLIB_FOUND TRUE)
  26. set(ZLIB_LIBRARY z)
  27. set(ZLIB_LIBRARIES z)
  28. else()
  29. find_package(ZLIB "${MIN_VER_ZLIB}")
  30. endif()
  31. if(ANDROID)
  32. set(CMAKE_FIND_LIBRARY_SUFFIXES ${_zlib_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
  33. unset(_zlib_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
  34. endif()
  35. if(ZLIB_FOUND AND ANDROID)
  36. if(ZLIB_LIBRARY MATCHES "/usr/lib.*/libz.so$")
  37. set(ZLIB_LIBRARY z)
  38. set(ZLIB_LIBRARIES z)
  39. set(ZLIB_LIBRARY_RELEASE z)
  40. endif()
  41. endif()
  42. endif()
  43. if(NOT ZLIB_FOUND)
  44. ocv_clear_vars(ZLIB_LIBRARY ZLIB_LIBRARIES ZLIB_INCLUDE_DIR)
  45. set(ZLIB_LIBRARY zlib CACHE INTERNAL "")
  46. add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/zlib")
  47. set(ZLIB_INCLUDE_DIR "${${ZLIB_LIBRARY}_SOURCE_DIR}" "${${ZLIB_LIBRARY}_BINARY_DIR}" CACHE INTERNAL "")
  48. set(ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR})
  49. set(ZLIB_LIBRARIES ${ZLIB_LIBRARY})
  50. ocv_parse_header_version(ZLIB "${${ZLIB_LIBRARY}_SOURCE_DIR}/zlib.h" ZLIB_VERSION)
  51. endif()
  52. endif()
  53. # --- libavif (optional) ---
  54. if(WITH_AVIF)
  55. ocv_clear_internal_cache_vars(AVIF_LIBRARY AVIF_INCLUDE_DIR)
  56. include(cmake/OpenCVFindAVIF.cmake)
  57. if(AVIF_FOUND)
  58. set(HAVE_AVIF 1)
  59. endif()
  60. endif()
  61. # --- libjpeg (optional) ---
  62. if(WITH_JPEG)
  63. if(BUILD_JPEG)
  64. ocv_clear_vars(JPEG_FOUND)
  65. else()
  66. ocv_clear_internal_cache_vars(JPEG_LIBRARY JPEG_INCLUDE_DIR)
  67. if(QNX)
  68. set(JPEG_LIBRARY jpeg)
  69. set(JPEG_LIBRARIES jpeg)
  70. set(JPEG_FOUND TRUE)
  71. else()
  72. include(FindJPEG)
  73. endif()
  74. endif()
  75. if(NOT JPEG_FOUND)
  76. ocv_clear_vars(JPEG_LIBRARY JPEG_INCLUDE_DIR)
  77. if(NOT BUILD_JPEG_TURBO_DISABLE)
  78. set(JPEG_LIBRARY libjpeg-turbo CACHE INTERNAL "")
  79. set(JPEG_LIBRARIES ${JPEG_LIBRARY})
  80. add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjpeg-turbo")
  81. set(JPEG_INCLUDE_DIR "${${JPEG_LIBRARY}_SOURCE_DIR}/src" CACHE INTERNAL "")
  82. else()
  83. set(JPEG_LIBRARY libjpeg CACHE INTERNAL "")
  84. set(JPEG_LIBRARIES ${JPEG_LIBRARY})
  85. add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjpeg")
  86. set(JPEG_INCLUDE_DIR "${${JPEG_LIBRARY}_SOURCE_DIR}" CACHE INTERNAL "")
  87. endif()
  88. set(JPEG_INCLUDE_DIRS "${JPEG_INCLUDE_DIR}")
  89. endif()
  90. macro(ocv_detect_jpeg_version header_file)
  91. if(NOT DEFINED JPEG_LIB_VERSION AND EXISTS "${header_file}")
  92. ocv_parse_header("${header_file}" JPEG_VERSION_LINES JPEG_LIB_VERSION)
  93. endif()
  94. endmacro()
  95. ocv_detect_jpeg_version("${JPEG_INCLUDE_DIR}/jpeglib.h")
  96. if(DEFINED CMAKE_CXX_LIBRARY_ARCHITECTURE)
  97. ocv_detect_jpeg_version("${JPEG_INCLUDE_DIR}/${CMAKE_CXX_LIBRARY_ARCHITECTURE}/jconfig.h")
  98. endif()
  99. # no needed for strict platform check here, both files 64/32 should contain the same version
  100. ocv_detect_jpeg_version("${JPEG_INCLUDE_DIR}/jconfig-64.h")
  101. ocv_detect_jpeg_version("${JPEG_INCLUDE_DIR}/jconfig-32.h")
  102. ocv_detect_jpeg_version("${JPEG_INCLUDE_DIR}/jconfig.h")
  103. ocv_detect_jpeg_version("${${JPEG_LIBRARY}_BINARY_DIR}/jconfig.h")
  104. if(NOT DEFINED JPEG_LIB_VERSION)
  105. set(JPEG_LIB_VERSION "unknown")
  106. endif()
  107. set(HAVE_JPEG YES)
  108. endif()
  109. # --- libtiff (optional, should be searched after zlib and libjpeg) ---
  110. if(WITH_TIFF)
  111. if(BUILD_TIFF)
  112. ocv_clear_vars(TIFF_FOUND)
  113. else()
  114. ocv_clear_internal_cache_vars(TIFF_LIBRARY TIFF_INCLUDE_DIR)
  115. if(QNX)
  116. set(TIFF_LIBRARY tiff)
  117. set(TIFF_LIBRARIES tiff)
  118. set(TIFF_FOUND TRUE)
  119. else()
  120. include(FindTIFF)
  121. endif()
  122. if(TIFF_FOUND)
  123. ocv_parse_header("${TIFF_INCLUDE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION)
  124. endif()
  125. endif()
  126. if(NOT TIFF_FOUND)
  127. ocv_clear_vars(TIFF_LIBRARY TIFF_LIBRARIES TIFF_INCLUDE_DIR)
  128. set(TIFF_LIBRARY libtiff CACHE INTERNAL "")
  129. set(TIFF_LIBRARIES ${TIFF_LIBRARY})
  130. add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libtiff")
  131. set(TIFF_INCLUDE_DIR "${${TIFF_LIBRARY}_SOURCE_DIR}" "${${TIFF_LIBRARY}_BINARY_DIR}" CACHE INTERNAL "")
  132. ocv_parse_header("${${TIFF_LIBRARY}_SOURCE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION)
  133. endif()
  134. if(TIFF_VERSION_CLASSIC AND NOT TIFF_VERSION)
  135. set(TIFF_VERSION ${TIFF_VERSION_CLASSIC})
  136. endif()
  137. if(TIFF_BIGTIFF_VERSION AND NOT TIFF_VERSION_BIG)
  138. set(TIFF_VERSION_BIG ${TIFF_BIGTIFF_VERSION})
  139. endif()
  140. if(NOT TIFF_VERSION_STRING AND TIFF_INCLUDE_DIR)
  141. foreach(_TIFF_INCLUDE_DIR IN LISTS TIFF_INCLUDE_DIR)
  142. if(EXISTS "${_TIFF_INCLUDE_DIR}/tiffvers.h")
  143. file(STRINGS "${_TIFF_INCLUDE_DIR}/tiffvers.h" tiff_version_str REGEX "^#define[\t ]+TIFFLIB_VERSION_STR[\t ]+\"LIBTIFF, Version .*")
  144. string(REGEX REPLACE "^#define[\t ]+TIFFLIB_VERSION_STR[\t ]+\"LIBTIFF, Version +([^ \\n]*).*" "\\1" TIFF_VERSION_STRING "${tiff_version_str}")
  145. unset(tiff_version_str)
  146. endif()
  147. endforeach()
  148. endif()
  149. set(HAVE_TIFF YES)
  150. endif()
  151. # --- libwebp (optional) ---
  152. if(WITH_WEBP)
  153. if(BUILD_WEBP)
  154. ocv_clear_vars(WEBP_FOUND WEBP_LIBRARY WEBP_LIBRARIES WEBP_INCLUDE_DIR)
  155. else()
  156. ocv_clear_internal_cache_vars(WEBP_LIBRARY WEBP_INCLUDE_DIR)
  157. include(cmake/OpenCVFindWebP.cmake)
  158. if(WEBP_FOUND)
  159. set(HAVE_WEBP 1)
  160. endif()
  161. endif()
  162. endif()
  163. # --- Add libwebp to 3rdparty/libwebp and compile it if not available ---
  164. if(WITH_WEBP AND NOT WEBP_FOUND
  165. AND (NOT ANDROID OR HAVE_CPUFEATURES)
  166. )
  167. ocv_clear_vars(WEBP_LIBRARY WEBP_INCLUDE_DIR)
  168. set(WEBP_LIBRARY libwebp CACHE INTERNAL "")
  169. set(WEBP_LIBRARIES ${WEBP_LIBRARY})
  170. add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libwebp")
  171. set(WEBP_INCLUDE_DIR "${${WEBP_LIBRARY}_SOURCE_DIR}/src" CACHE INTERNAL "")
  172. set(HAVE_WEBP 1)
  173. endif()
  174. if(NOT WEBP_VERSION AND WEBP_INCLUDE_DIR)
  175. if(EXISTS "${WEBP_INCLUDE_DIR}/webp/encode.h")
  176. file(STRINGS "${WEBP_INCLUDE_DIR}/webp/encode.h" WEBP_ENCODER_ABI_VERSION REGEX "#define[ \t]+WEBP_ENCODER_ABI_VERSION[ \t]+([x0-9a-f]+)" )
  177. if(WEBP_ENCODER_ABI_VERSION MATCHES "#define[ \t]+WEBP_ENCODER_ABI_VERSION[ \t]+([x0-9a-f]+)")
  178. set(WEBP_ENCODER_ABI_VERSION "${CMAKE_MATCH_1}")
  179. else()
  180. unset(WEBP_ENCODER_ABI_VERSION)
  181. endif()
  182. endif()
  183. if(EXISTS "${WEBP_INCLUDE_DIR}/webp/decode.h")
  184. file(STRINGS "${WEBP_INCLUDE_DIR}/webp/decode.h" WEBP_DECODER_ABI_VERSION REGEX "#define[ \t]+WEBP_DECODER_ABI_VERSION[ \t]+([x0-9a-f]+)" )
  185. if(WEBP_DECODER_ABI_VERSION MATCHES "#define[ \t]+WEBP_DECODER_ABI_VERSION[ \t]+([x0-9a-f]+)")
  186. set(WEBP_DECODER_ABI_VERSION "${CMAKE_MATCH_1}")
  187. else()
  188. unset(WEBP_DECODER_ABI_VERSION)
  189. endif()
  190. endif()
  191. if(EXISTS "${WEBP_INCLUDE_DIR}/webp/demux.h")
  192. file(STRINGS "${WEBP_INCLUDE_DIR}/webp/demux.h" WEBP_DEMUX_ABI_VERSION REGEX "#define[ \t]+WEBP_DEMUX_ABI_VERSION[ \t]+([x0-9a-f]+)" )
  193. if(WEBP_DEMUX_ABI_VERSION MATCHES "#define[ \t]+WEBP_DEMUX_ABI_VERSION[ \t]+([x0-9a-f]+)")
  194. set(WEBP_DEMUX_ABI_VERSION "${CMAKE_MATCH_1}")
  195. else()
  196. unset(WEBP_DEMUX_ABI_VERSION)
  197. endif()
  198. endif()
  199. set(WEBP_VERSION "decoder: ${WEBP_DECODER_ABI_VERSION}, encoder: ${WEBP_ENCODER_ABI_VERSION}, demux: ${WEBP_DEMUX_ABI_VERSION}")
  200. endif()
  201. # --- libjxl (optional) ---
  202. if(WITH_JPEGXL)
  203. ocv_clear_vars(HAVE_JPEGXL)
  204. ocv_clear_internal_cache_vars(JPEGXL_INCLUDE_PATHS JPEGXL_LIBRARIES JPEGXL_VERSION)
  205. include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindJPEGXL.cmake")
  206. if(JPEGXL_FOUND)
  207. set(HAVE_JPEGXL YES)
  208. message(STATUS "Found system JPEG-XL: ver ${JPEGXL_VERSION}")
  209. endif()
  210. endif()
  211. # --- libopenjp2 (optional, check before libjasper) ---
  212. if(WITH_OPENJPEG)
  213. if(BUILD_OPENJPEG)
  214. ocv_clear_vars(OpenJPEG_FOUND)
  215. else()
  216. find_package(OpenJPEG QUIET)
  217. endif()
  218. if(NOT OpenJPEG_FOUND OR OPENJPEG_MAJOR_VERSION LESS 2)
  219. ocv_clear_vars(OPENJPEG_MAJOR_VERSION OPENJPEG_MINOR_VERSION OPENJPEG_BUILD_VERSION OPENJPEG_LIBRARIES OPENJPEG_INCLUDE_DIRS)
  220. message(STATUS "Could NOT find OpenJPEG (minimal suitable version: 2.0, "
  221. "recommended version >= 2.3.1). OpenJPEG will be built from sources")
  222. add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/openjpeg")
  223. if(OCV_CAN_BUILD_OPENJPEG)
  224. set(HAVE_OPENJPEG YES)
  225. message(STATUS "OpenJPEG libraries will be built from sources: ${OPENJPEG_LIBRARIES} "
  226. "(version \"${OPENJPEG_VERSION}\")")
  227. else()
  228. set(HAVE_OPENJPEG NO)
  229. message(STATUS "OpenJPEG libraries can't be built from sources. System requirements are not fulfilled.")
  230. endif()
  231. else()
  232. set(HAVE_OPENJPEG YES)
  233. set(OPENJPEG_VERSION "${OPENJPEG_MAJOR_VERSION}.${OPENJPEG_MINOR_VERSION}.${OPENJPEG_BUILD_VERSION}")
  234. message(STATUS "Found system OpenJPEG: ${OPENJPEG_LIBRARIES} "
  235. "(found version \"${OPENJPEG_VERSION}\")")
  236. endif()
  237. endif()
  238. # --- libjasper (optional, should be searched after libjpeg) ---
  239. if(WITH_JASPER AND NOT HAVE_OPENJPEG)
  240. if(BUILD_JASPER)
  241. ocv_clear_vars(JASPER_FOUND)
  242. else()
  243. include(FindJasper)
  244. endif()
  245. if(NOT JASPER_FOUND)
  246. ocv_clear_vars(JASPER_LIBRARY JASPER_LIBRARIES JASPER_INCLUDE_DIR)
  247. set(JASPER_LIBRARY libjasper CACHE INTERNAL "")
  248. set(JASPER_LIBRARIES ${JASPER_LIBRARY})
  249. add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjasper")
  250. set(JASPER_INCLUDE_DIR "${${JASPER_LIBRARY}_SOURCE_DIR}" CACHE INTERNAL "")
  251. endif()
  252. set(HAVE_JASPER YES)
  253. if(NOT JASPER_VERSION_STRING)
  254. ocv_parse_header2(JASPER "${JASPER_INCLUDE_DIR}/jasper/jas_config.h" JAS_VERSION "")
  255. endif()
  256. endif()
  257. if(WITH_SPNG)
  258. if(BUILD_SPNG)
  259. ocv_clear_vars(PNG_FOUND)
  260. else()
  261. # CMakeConfig bug in SPNG, include is missing there in version 0.7.4 and older
  262. # See https://github.com/randy408/libspng/pull/264
  263. include(CMakeFindDependencyMacro)
  264. find_package(SPNG QUIET)
  265. if(SPNG_FOUND)
  266. set(SPNG_LIBRARY "spng::spng" CACHE INTERNAL "")
  267. set(SPNG_LIBRARIES ${SPNG_LIBRARY})
  268. else()
  269. if(PkgConfig_FOUND)
  270. pkg_check_modules(SPNG QUIET spng)
  271. if(SPNG_FOUND)
  272. set(SPNG_LIBRARY ${SPNG_LIBRARIES} CACHE INTERNAL "")
  273. endif()
  274. endif()
  275. endif()
  276. if(SPNG_FOUND)
  277. set(HAVE_SPNG YES)
  278. message(STATUS "imgcodecs: PNG codec will use SPNG, version: ${SPNG_VERSION}")
  279. endif()
  280. endif()
  281. if(NOT SPNG_FOUND)
  282. set(SPNG_LIBRARY libspng CACHE INTERNAL "")
  283. set(SPNG_LIBRARIES ${SPNG_LIBRARY})
  284. add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libspng")
  285. set(SPNG_INCLUDE_DIR "${${SPNG_LIBRARY}_SOURCE_DIR}" CACHE INTERNAL "")
  286. set(SPNG_DEFINITIONS "")
  287. ocv_parse_header("${SPNG_INCLUDE_DIR}/spng.h" SPNG_VERSION_LINES SPNG_VERSION_MAJOR SPNG_VERSION_MINOR SPNG_VERSION_PATCH)
  288. set(HAVE_SPNG YES)
  289. set(SPNG_VERSION "${SPNG_VERSION_MAJOR}.${SPNG_VERSION_MINOR}.${SPNG_VERSION_PATCH}")
  290. message(STATUS "imgcodecs: PNG codec will use SPNG, version: ${SPNG_VERSION} ")
  291. endif()
  292. endif()
  293. # --- libpng (optional, should be searched after zlib) ---
  294. if(NOT HAVE_SPNG AND WITH_PNG)
  295. if(BUILD_PNG)
  296. ocv_clear_vars(PNG_FOUND)
  297. else()
  298. ocv_clear_internal_cache_vars(PNG_LIBRARY PNG_INCLUDE_DIR)
  299. find_package(PNG QUIET)
  300. endif()
  301. if(NOT PNG_FOUND)
  302. ocv_clear_vars(PNG_LIBRARY PNG_LIBRARIES PNG_INCLUDE_DIR PNG_DEFINITIONS)
  303. set(PNG_LIBRARY libpng CACHE INTERNAL "")
  304. set(PNG_LIBRARIES ${PNG_LIBRARY})
  305. add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libpng")
  306. set(PNG_INCLUDE_DIR "${${PNG_LIBRARY}_SOURCE_DIR}" CACHE INTERNAL "")
  307. set(PNG_DEFINITIONS "")
  308. ocv_parse_header_version(PNG "${PNG_INCLUDE_DIR}/png.h" PNG_LIBPNG_VER_STRING)
  309. endif()
  310. set(HAVE_PNG YES)
  311. endif()
  312. # --- OpenEXR (optional) ---
  313. if(WITH_OPENEXR)
  314. ocv_clear_vars(HAVE_OPENEXR)
  315. if(NOT BUILD_OPENEXR)
  316. ocv_clear_internal_cache_vars(OPENEXR_INCLUDE_PATHS OPENEXR_LIBRARIES OPENEXR_ILMIMF_LIBRARY OPENEXR_VERSION)
  317. include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake")
  318. endif()
  319. if(OPENEXR_FOUND)
  320. set(HAVE_OPENEXR YES)
  321. else()
  322. ocv_clear_vars(OPENEXR_INCLUDE_PATHS OPENEXR_LIBRARIES OPENEXR_ILMIMF_LIBRARY OPENEXR_VERSION)
  323. set(OPENEXR_LIBRARIES IlmImf)
  324. add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/openexr")
  325. if(OPENEXR_VERSION) # check via TARGET doesn't work
  326. set(BUILD_OPENEXR ON)
  327. set(HAVE_OPENEXR YES)
  328. set(BUILD_OPENEXR ON)
  329. endif()
  330. endif()
  331. endif()
  332. # --- GDAL (optional) ---
  333. if(WITH_GDAL)
  334. find_package(GDAL QUIET)
  335. if(NOT GDAL_FOUND)
  336. set(HAVE_GDAL NO)
  337. ocv_clear_vars(GDAL_VERSION GDAL_LIBRARIES)
  338. else()
  339. set(HAVE_GDAL YES)
  340. ocv_include_directories(${GDAL_INCLUDE_DIR})
  341. # GDAL_VERSION requires CMake 3.14 or later, if not found, GDAL_RELEASE_NAME is used instead.
  342. # See https://cmake.org/cmake/help/latest/module/FindGDAL.html
  343. if(NOT GDAL_VERSION)
  344. if(EXISTS "${GDAL_INCLUDE_DIR}/gdal_version.h")
  345. file(STRINGS "${GDAL_INCLUDE_DIR}/gdal_version.h" gdal_version_str REGEX "^#[\t ]+define[\t ]+GDAL_RELEASE_NAME[\t ]*")
  346. string(REGEX REPLACE "^#\[\t ]+define[\t ]+GDAL_RELEASE_NAME[\t ]+\"([^ \\n]*)\"" "\\1" GDAL_VERSION "${gdal_version_str}")
  347. unset(gdal_version_str)
  348. endif()
  349. endif()
  350. endif()
  351. endif()
  352. if(WITH_GDCM)
  353. find_package(GDCM QUIET)
  354. if(NOT GDCM_FOUND)
  355. set(HAVE_GDCM NO)
  356. ocv_clear_vars(GDCM_VERSION GDCM_LIBRARIES)
  357. else()
  358. set(HAVE_GDCM YES)
  359. # include(${GDCM_USE_FILE})
  360. set(GDCM_LIBRARIES gdcmMSFF) # GDCM does not set this variable for some reason
  361. endif()
  362. endif()
  363. if(WITH_IMGCODEC_GIF)
  364. set(HAVE_IMGCODEC_GIF ON)
  365. elseif(DEFINED WITH_IMGCODEC_GIF)
  366. set(HAVE_IMGCODEC_GIF OFF)
  367. endif()
  368. if(WITH_IMGCODEC_HDR)
  369. set(HAVE_IMGCODEC_HDR ON)
  370. elseif(DEFINED WITH_IMGCODEC_HDR)
  371. set(HAVE_IMGCODEC_HDR OFF)
  372. endif()
  373. if(WITH_IMGCODEC_SUNRASTER)
  374. set(HAVE_IMGCODEC_SUNRASTER ON)
  375. elseif(DEFINED WITH_IMGCODEC_SUNRASTER)
  376. set(HAVE_IMGCODEC_SUNRASTER OFF)
  377. endif()
  378. if(WITH_IMGCODEC_PXM)
  379. set(HAVE_IMGCODEC_PXM ON)
  380. elseif(DEFINED WITH_IMGCODEC_PXM)
  381. set(HAVE_IMGCODEC_PXM OFF)
  382. endif()
  383. if(WITH_IMGCODEC_PFM)
  384. set(HAVE_IMGCODEC_PFM ON)
  385. elseif(DEFINED WITH_IMGCODEC_PFM)
  386. set(HAVE_IMGCODEC_PFM OFF)
  387. endif()