Merge remote-tracking branch 'upstream/3.4' into merge-3.4
[platform/upstream/opencv.git] / cmake / OpenCVFindLibsGrfmt.cmake
index f99bb33..2e4e4af 100644 (file)
@@ -159,8 +159,36 @@ if(NOT WEBP_VERSION AND WEBP_INCLUDE_DIR)
   endif()
 endif()
 
+# --- libopenjp2 (optional, check before libjasper) ---
+if(WITH_OPENJPEG)
+  if(BUILD_OPENJPEG)
+    ocv_clear_vars(OpenJPEG_FOUND)
+  else()
+    find_package(OpenJPEG QUIET)
+  endif()
+
+  if(NOT OpenJPEG_FOUND OR OPENJPEG_MAJOR_VERSION LESS 2)
+    ocv_clear_vars(OPENJPEG_MAJOR_VERSION OPENJPEG_MINOR_VERSION OPENJPEG_BUILD_VERSION OPENJPEG_LIBRARIES OPENJPEG_INCLUDE_DIRS)
+    message(STATUS "Could NOT find OpenJPEG (minimal suitable version: 2.0, "
+            "recommended version >= 2.3.1). OpenJPEG will be built from sources")
+    add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/openjpeg")
+    if(OCV_CAN_BUILD_OPENJPEG)
+      set(HAVE_OPENJPEG YES)
+      message(STATUS "OpenJPEG libraries will be built from sources: ${OPENJPEG_LIBRARIES} "
+              "(version \"${OPENJPEG_VERSION}\")")
+    else()
+      set(HAVE_OPENJPEG NO)
+      message(STATUS "OpenJPEG libraries can't be built from sources. System requirements are not fulfilled.")
+    endif()
+  else()
+    set(HAVE_OPENJPEG YES)
+    message(STATUS "Found system OpenJPEG: ${OPENJPEG_LIBRARIES} "
+            "(found version \"${OPENJPEG_VERSION}\")")
+  endif()
+endif()
+
 # --- libjasper (optional, should be searched after libjpeg) ---
-if(WITH_JASPER)
+if(WITH_JASPER AND NOT HAVE_OPENJPEG)
   if(BUILD_JASPER)
     ocv_clear_vars(JASPER_FOUND)
   else()
@@ -277,3 +305,8 @@ if(WITH_IMGCODEC_PXM)
 elseif(DEFINED WITH_IMGCODEC_PXM)
   set(HAVE_IMGCODEC_PXM OFF)
 endif()
+if(WITH_IMGCODEC_PFM)
+  set(HAVE_IMGCODEC_PFM ON)
+elseif(DEFINED WITH_IMGCODEC_PFM)
+  set(HAVE_IMGCODEC_PFM OFF)
+endif()