Merge pull request #15743 from collinbrake:feature_grammar_fixes_2
[platform/upstream/opencv.git] / cmake / OpenCVFindLibsGrfmt.cmake
index ab1dcd9..fcf716b 100644 (file)
@@ -36,13 +36,36 @@ if(WITH_JPEG)
   if(NOT JPEG_FOUND)
     ocv_clear_vars(JPEG_LIBRARY JPEG_LIBRARIES JPEG_INCLUDE_DIR)
 
-    set(JPEG_LIBRARY libjpeg)
-    set(JPEG_LIBRARIES ${JPEG_LIBRARY})
-    add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjpeg")
-    set(JPEG_INCLUDE_DIR "${${JPEG_LIBRARY}_SOURCE_DIR}")
+    if(NOT BUILD_JPEG_TURBO_DISABLE)
+      set(JPEG_LIBRARY libjpeg-turbo)
+      set(JPEG_LIBRARIES ${JPEG_LIBRARY})
+      add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjpeg-turbo")
+      set(JPEG_INCLUDE_DIR "${${JPEG_LIBRARY}_SOURCE_DIR}/src")
+    else()
+      set(JPEG_LIBRARY libjpeg)
+      set(JPEG_LIBRARIES ${JPEG_LIBRARY})
+      add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjpeg")
+      set(JPEG_INCLUDE_DIR "${${JPEG_LIBRARY}_SOURCE_DIR}")
+    endif()
   endif()
 
-  ocv_parse_header("${JPEG_INCLUDE_DIR}/jpeglib.h" JPEG_VERSION_LINES JPEG_LIB_VERSION)
+  macro(ocv_detect_jpeg_version header_file)
+    if(NOT DEFINED JPEG_LIB_VERSION AND EXISTS "${header_file}")
+      ocv_parse_header("${header_file}" JPEG_VERSION_LINES JPEG_LIB_VERSION)
+    endif()
+  endmacro()
+  ocv_detect_jpeg_version("${JPEG_INCLUDE_DIR}/jpeglib.h")
+  if(DEFINED CMAKE_CXX_LIBRARY_ARCHITECTURE)
+    ocv_detect_jpeg_version("${JPEG_INCLUDE_DIR}/${CMAKE_CXX_LIBRARY_ARCHITECTURE}/jconfig.h")
+  endif()
+  # no needed for strict platform check here, both files 64/32 should contain the same version
+  ocv_detect_jpeg_version("${JPEG_INCLUDE_DIR}/jconfig-64.h")
+  ocv_detect_jpeg_version("${JPEG_INCLUDE_DIR}/jconfig-32.h")
+  ocv_detect_jpeg_version("${JPEG_INCLUDE_DIR}/jconfig.h")
+  ocv_detect_jpeg_version("${${JPEG_LIBRARY}_BINARY_DIR}/jconfig.h")
+  if(NOT DEFINED JPEG_LIB_VERSION)
+    set(JPEG_LIB_VERSION "unknown")
+  endif()
   set(HAVE_JPEG YES)
 endif()
 
@@ -188,21 +211,22 @@ endif()
 
 # --- OpenEXR (optional) ---
 if(WITH_OPENEXR)
-  if(BUILD_OPENEXR)
-    ocv_clear_vars(OPENEXR_FOUND)
-  else()
+  ocv_clear_vars(HAVE_OPENEXR)
+  if(NOT BUILD_OPENEXR)
     include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake")
   endif()
 
-  if(NOT OPENEXR_FOUND)
+  if(OPENEXR_FOUND)
+    set(HAVE_OPENEXR YES)
+  else()
     ocv_clear_vars(OPENEXR_INCLUDE_PATHS OPENEXR_LIBRARIES OPENEXR_ILMIMF_LIBRARY OPENEXR_VERSION)
 
     set(OPENEXR_LIBRARIES IlmImf)
-    set(OPENEXR_ILMIMF_LIBRARY IlmImf)
     add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/openexr")
+    if(OPENEXR_VERSION)  # check via TARGET doesn't work
+      set(HAVE_OPENEXR YES)
+    endif()
   endif()
-
-  set(HAVE_OPENEXR YES)
 endif()
 
 # --- GDAL (optional) ---
@@ -229,3 +253,19 @@ if (WITH_GDCM)
     set(GDCM_LIBRARIES gdcmMSFF) # GDCM does not set this variable for some reason
   endif()
 endif()
+
+if(WITH_IMGCODEC_HDR)
+  set(HAVE_IMGCODEC_HDR ON)
+elseif(DEFINED WITH_IMGCODEC_HDR)
+  set(HAVE_IMGCODEC_HDR OFF)
+endif()
+if(WITH_IMGCODEC_SUNRASTER)
+  set(HAVE_IMGCODEC_SUNRASTER ON)
+elseif(DEFINED WITH_IMGCODEC_SUNRASTER)
+  set(HAVE_IMGCODEC_SUNRASTER OFF)
+endif()
+if(WITH_IMGCODEC_PXM)
+  set(HAVE_IMGCODEC_PXM ON)
+elseif(DEFINED WITH_IMGCODEC_PXM)
+  set(HAVE_IMGCODEC_PXM OFF)
+endif()