Merge pull request #19970 from antonio-rojas:master
authorAntonio Rojas <arojas@archlinux.org>
Mon, 26 Apr 2021 22:13:59 +0000 (00:13 +0200)
committerGitHub <noreply@github.com>
Mon, 26 Apr 2021 22:13:59 +0000 (22:13 +0000)
Support building with OpenEXR 3.x

* Support OpenEXR 3.0

Try to find OpenEXR 3.0 using the upstream cmake config, and fallback to the previous algorithm if not found

* Add explicit ImfFrameBuffer.h include

This was transitively included with OpenEXR 2.x, but that's no longer the case with OpenEXR 3.x

cmake/OpenCVFindOpenEXR.cmake
modules/imgcodecs/src/grfmt_exr.cpp

index ef633e853adc629c3061b4d5ce992e992af78878..133468243a841ad0ecde7f059f58c6fbc69df093 100644 (file)
@@ -9,6 +9,14 @@
 # OPENEXR_LIBRARIES = libraries that are needed to use OpenEXR.
 #
 
+find_package(OpenEXR 3.0 CONFIG QUIET)
+if(TARGET OpenEXR::OpenEXR)
+    SET(OPENEXR_FOUND TRUE)
+    SET(OPENEXR_LIBRARIES OpenEXR::OpenEXR)
+    SET(OPENEXR_VERSION ${OpenEXR_VERSION})
+    return()
+endif()
+
 SET(OPENEXR_LIBRARIES "")
 SET(OPENEXR_LIBSEARCH_SUFFIXES "")
 file(TO_CMAKE_PATH "$ENV{ProgramFiles}" ProgramFiles_ENV_PATH)
index 9242871f8dde3bfe2e9702b9d8184e4eccfdbce1..aaf28eead6f7882c0e402310385bca4482c02926 100644 (file)
@@ -56,6 +56,7 @@
 #include <iostream>
 #include <stdexcept>
 
+#include <ImfFrameBuffer.h>
 #include <ImfHeader.h>
 #include <ImfInputFile.h>
 #include <ImfOutputFile.h>