orion / rpms / opencv

Forked from rpms/opencv 4 years ago
Clone
635cf81
From fb3a334bbee3535d508af6510d9903d26ba37d34 Mon Sep 17 00:00:00 2001
635cf81
From: h6197627 <aon70983@cndps.com>
635cf81
Date: Mon, 6 Jan 2020 15:52:40 +0200
635cf81
Subject: [PATCH] cmake: fix Linux system OpenEXR detection
635cf81
635cf81
---
635cf81
 cmake/OpenCVFindOpenEXR.cmake | 55 ++++++++++++++++++-----------------
635cf81
 1 file changed, 29 insertions(+), 26 deletions(-)
635cf81
635cf81
diff --git a/cmake/OpenCVFindOpenEXR.cmake b/cmake/OpenCVFindOpenEXR.cmake
635cf81
index fb6c2fa1469..9103f1f5a71 100644
635cf81
--- a/cmake/OpenCVFindOpenEXR.cmake
635cf81
+++ b/cmake/OpenCVFindOpenEXR.cmake
635cf81
@@ -20,6 +20,8 @@ if(WIN32)
635cf81
     elseif(MSVC)
635cf81
         SET(OPENEXR_LIBSEARCH_SUFFIXES Win32/Release Win32 Win32/Debug)
635cf81
     endif()
635cf81
+elseif(UNIX)
635cf81
+    SET(OPENEXR_LIBSEARCH_SUFFIXES ${CMAKE_LIBRARY_ARCHITECTURE})
635cf81
 endif()
635cf81
 
635cf81
 SET(SEARCH_PATHS
635cf81
@@ -39,6 +41,25 @@ MACRO(FIND_OPENEXR_LIBRARY LIBRARY_NAME LIBRARY_SUFFIX)
635cf81
         PATHS "${SEARCH_PATH}/lib" "${SEARCH_PATH}/lib/static")
635cf81
 ENDMACRO()
635cf81
 
635cf81
+MACRO(ocv_find_openexr LIBRARY_SUFFIX)
635cf81
+    IF(NOT OPENEXR_FOUND)
635cf81
+        FIND_OPENEXR_LIBRARY("Half" "${LIBRARY_SUFFIX}")
635cf81
+        FIND_OPENEXR_LIBRARY("Iex" "${LIBRARY_SUFFIX}")
635cf81
+        FIND_OPENEXR_LIBRARY("Imath" "${LIBRARY_SUFFIX}")
635cf81
+        FIND_OPENEXR_LIBRARY("IlmImf" "${LIBRARY_SUFFIX}")
635cf81
+        FIND_OPENEXR_LIBRARY("IlmThread" "${LIBRARY_SUFFIX}")
635cf81
+        IF (OPENEXR_INCLUDE_PATH AND OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY AND OPENEXR_ILMTHREAD_LIBRARY)
635cf81
+            SET(OPENEXR_FOUND TRUE)
635cf81
+        ELSE()
635cf81
+            UNSET(OPENEXR_IMATH_LIBRARY)
635cf81
+            UNSET(OPENEXR_ILMIMF_LIBRARY)
635cf81
+            UNSET(OPENEXR_IEX_LIBRARY)
635cf81
+            UNSET(OPENEXR_ILMTHREAD_LIBRARY)
635cf81
+            UNSET(OPENEXR_HALF_LIBRARY)
635cf81
+        ENDIF()
635cf81
+    ENDIF()
635cf81
+ENDMACRO()
635cf81
+
635cf81
 FOREACH(SEARCH_PATH ${SEARCH_PATHS})
635cf81
     FIND_PATH(OPENEXR_INCLUDE_PATH ImfRgbaFile.h
635cf81
         PATH_SUFFIXES OpenEXR
635cf81
@@ -64,32 +85,14 @@ FOREACH(SEARCH_PATH ${SEARCH_PATHS})
635cf81
         set(OPENEXR_VERSION "${OPENEXR_VERSION_MAJOR}_${OPENEXR_VERSION_MINOR}")
635cf81
     ENDIF ()
635cf81
 
635cf81
-    SET(LIBRARY_SUFFIXES
635cf81
-        "-${OPENEXR_VERSION}"
635cf81
-        "-${OPENEXR_VERSION}_s"
635cf81
-        "-${OPENEXR_VERSION}_d"
635cf81
-        "-${OPEXEXR_VERSION}_s_d"
635cf81
-        ""
635cf81
-        "_s"
635cf81
-        "_d"
635cf81
-        "_s_d")
635cf81
-
635cf81
-    FOREACH(LIBRARY_SUFFIX ${LIBRARY_SUFFIXES})
635cf81
-        FIND_OPENEXR_LIBRARY("Half" ${LIBRARY_SUFFIX})
635cf81
-        FIND_OPENEXR_LIBRARY("Iex" ${LIBRARY_SUFFIX})
635cf81
-        FIND_OPENEXR_LIBRARY("Imath" ${LIBRARY_SUFFIX})
635cf81
-        FIND_OPENEXR_LIBRARY("IlmImf" ${LIBRARY_SUFFIX})
635cf81
-        FIND_OPENEXR_LIBRARY("IlmThread" ${LIBRARY_SUFFIX})
635cf81
-        IF (OPENEXR_INCLUDE_PATH AND OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY)
635cf81
-            SET(OPENEXR_FOUND TRUE)
635cf81
-            BREAK()
635cf81
-        ENDIF()
635cf81
-        UNSET(OPENEXR_IMATH_LIBRARY)
635cf81
-        UNSET(OPENEXR_ILMIMF_LIBRARY)
635cf81
-        UNSET(OPENEXR_IEX_LIBRARY)
635cf81
-        UNSET(OPENEXR_ILMTHREAD_LIBRARY)
635cf81
-        UNSET(OPENEXR_HALF_LIBRARY)
635cf81
-    ENDFOREACH()
635cf81
+    ocv_find_openexr("-${OPENEXR_VERSION}")
635cf81
+    ocv_find_openexr("-${OPENEXR_VERSION}_s")
635cf81
+    ocv_find_openexr("-${OPENEXR_VERSION}_d")
635cf81
+    ocv_find_openexr("-${OPEXEXR_VERSION}_s_d")
635cf81
+    ocv_find_openexr("")
635cf81
+    ocv_find_openexr("_s")
635cf81
+    ocv_find_openexr("_d")
635cf81
+    ocv_find_openexr("_s_d")
635cf81
 
635cf81
     IF (OPENEXR_FOUND)
635cf81
         BREAK()