--- libYafaRay-3.5.1/CMakeModules/FindOpenEXR.cmake 2026-10-18 16:04:26.113090979 +0200 +++ libYafaRay-3.5.1/CMakeModules/FindOpenEXR.cmake 2026-10-18 16:04:26.114090968 +0200 @@ -1,79 +1,10 @@ -# -# Try to find OpenEXR's libraries, and include path. -# Once done this will define: -# -# OPENEXR_FOUND = OpenEXR found. -# OPENEXR_INCLUDE_DIRS = OpenEXR include directories. -# OPENEXR_LIBRARIES = libraries that are needed to use OpenEXR. -# - -INCLUDE(FindZLIB) - - -IF(ZLIB_FOUND) - - SET(LIBRARY_DIRS - /usr/lib - /usr/local/lib - /sw/lib - /opt/local/lib - $ENV{PROGRAM_FILES}/OpenEXR/lib/static) - - FIND_PATH(OPENEXR_INCLUDE_PATH ImfRgbaFile.h - PATH_SUFFIXES OpenEXR - /usr/include - /usr/local/include - /sw/include - /opt/local/include) - - FIND_LIBRARY(OPENEXR_HALF_LIBRARY - NAMES Half - PATHS ${LIBRARY_DIRS}) - - FIND_LIBRARY(OPENEXR_IEX_LIBRARY - NAMES Iex - PATHS ${LIBRARY_DIRS}) - - FIND_LIBRARY(OPENEXR_IMATH_LIBRARY - NAMES Imath - PATHS ${LIBRARY_DIRS}) - - FIND_LIBRARY(OPENEXR_ILMIMF_LIBRARY - NAMES IlmImf - PATHS ${LIBRARY_DIRS}) - - FIND_LIBRARY(OPENEXR_ILMTHREAD_LIBRARY - NAMES IlmThread - PATHS ${LIBRARY_DIRS}) - -ENDIF(ZLIB_FOUND) - -#MESSAGE(STATUS ${OPENEXR_IMATH_LIBRARY} ${OPENEXR_ILMIMF_LIBRARY} ${OPENEXR_IEX_LIBRARY} ${OPENEXR_HALF_LIBRARY} ${OPENEXR_ILMTHREAD_LIBRARY} ${ZLIB_LIBRARY}) - -IF (OPENEXR_INCLUDE_PATH AND OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY) - SET(OPENEXR_FOUND TRUE) - SET(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_PATH} CACHE STRING "The include paths needed to use OpenEXR") - SET(OPENEXR_LIBRARIES ${OPENEXR_IMATH_LIBRARY} ${OPENEXR_ILMIMF_LIBRARY} ${OPENEXR_IEX_LIBRARY} ${OPENEXR_HALF_LIBRARY} ${ZLIB_LIBRARY} CACHE STRING "The libraries needed to use OpenEXR") - - IF(OPENEXR_ILMTHREAD_LIBRARY) - SET(OPENEXR_LIBRARIES ${OPENEXR_LIBRARIES} ${OPENEXR_ILMTHREAD_LIBRARY}) - ENDIF(OPENEXR_ILMTHREAD_LIBRARY) -ENDIF (OPENEXR_INCLUDE_PATH AND OPENEXR_IMATH_LIBRARY AND OPENEXR_ILMIMF_LIBRARY AND OPENEXR_IEX_LIBRARY AND OPENEXR_HALF_LIBRARY) - -IF(OPENEXR_FOUND) - IF(NOT OPENEXR_FIND_QUIETLY) - MESSAGE(STATUS "Found OpenEXR: ${OPENEXR_ILMIMF_LIBRARY}") - ENDIF(NOT OPENEXR_FIND_QUIETLY) -ELSE(OPENEXR_FOUND) - IF(OPENEXR_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Could not find OpenEXR library") - ENDIF(OPENEXR_FIND_REQUIRED) -ENDIF(OPENEXR_FOUND) - -MARK_AS_ADVANCED( - OPENEXR_INCLUDE_DIRS - OPENEXR_LIBRARIES - OPENEXR_ILMIMF_LIBRARY - OPENEXR_IMATH_LIBRARY - OPENEXR_IEX_LIBRARY - OPENEXR_HALF_LIBRARY) +# OpenEXR 3 and Imath ship CMake package configs +find_package(OpenEXR CONFIG) +if(OpenEXR_FOUND) + set(OPENEXR_FOUND TRUE) + get_target_property(OPENEXR_INCLUDE_DIRS OpenEXR::OpenEXR INTERFACE_INCLUDE_DIRECTORIES) + set(OPENEXR_LIBRARIES OpenEXR::OpenEXR) + message(STATUS "Found OpenEXR: ${OpenEXR_VERSION}") +elseif(OpenEXR_FIND_REQUIRED) + message(FATAL_ERROR "Could not find OpenEXR library") +endif() --- libYafaRay-3.5.1/src/image_handlers/exrHandler.cc 2026-10-18 16:12:04.602023275 +0200 +++ libYafaRay-3.5.1/src/image_handlers/exrHandler.cc 2026-10-18 16:12:04.604303458 +0200 @@ -50,8 +50,8 @@ public: C_IStream (FILE *file, const char fileName[]): Imf::IStream (fileName), _file (file) {} virtual bool read (char c[], int n); - virtual Int64 tellg (); - virtual void seekg (Int64 pos); + virtual uint64_t tellg (); + virtual void seekg (uint64_t pos); virtual void clear (); private: FILE * _file; @@ -70,12 +70,12 @@ bool C_IStream::read (char c[], int n) return feof (_file); } -Int64 C_IStream::tellg () +uint64_t C_IStream::tellg () { return ftell (_file); } -void C_IStream::seekg (Int64 pos) +void C_IStream::seekg (uint64_t pos) { clearerr (_file); fseek (_file, pos, SEEK_SET); @@ -93,8 +93,8 @@ public: C_OStream (FILE *file, const char fileName[]): Imf::OStream (fileName), _file (file) {} virtual void write (const char c[], int n); - virtual Int64 tellp (); - virtual void seekp (Int64 pos); + virtual uint64_t tellp (); + virtual void seekp (uint64_t pos); private: FILE * _file; }; @@ -111,12 +111,12 @@ void C_OStream::write (const char c[], i } } -Int64 C_OStream::tellp () +uint64_t C_OStream::tellp () { return ftell (_file); } -void C_OStream::seekp (Int64 pos) +void C_OStream::seekp (uint64_t pos) { clearerr (_file); fseek (_file, pos, SEEK_SET);