From 3d436132be75c7aea6ccf93eb84c9c8d34399853 Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Wed, 16 Feb 2022 22:19:58 +0000 Subject: [PATCH 1/2] Fix build with OpenEXR 3 and use upstream OpenEXR CMake Config * asturm 2026-01-22: OpenEXR 3 release and compatible upstream CMake Config goes back to the beginning of 2021. Last commit to OpenEXR 2.5 branch was made more than 2 years ago and it is safe to say that was the last one. Signed-off-by: Andreas Sturmlechner --- CMakeLists.txt | 3 +-- src/osgPlugins/CMakeLists.txt | 2 +- src/osgPlugins/exr/CMakeLists.txt | 6 ++---- src/osgPlugins/exr/ReaderWriterEXR.cpp | 8 ++++---- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 096594dc0e4..39d166ebcfa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -739,10 +739,9 @@ IF(ANDROID AND OSG_FIND_3RD_PARTY_DEPS) ELSE() # Common to all platforms except android: FIND_PACKAGE(Freetype) - FIND_PACKAGE(ilmbase) FIND_PACKAGE(Inventor) FIND_PACKAGE(Jasper) - FIND_PACKAGE(OpenEXR) + FIND_PACKAGE(OpenEXR 3.0 CONFIG) FIND_PACKAGE(OpenCascade) FIND_PACKAGE(COLLADA) FIND_PACKAGE(FBX) diff --git a/src/osgPlugins/CMakeLists.txt b/src/osgPlugins/CMakeLists.txt index 277dbebd5bd..b7741cdf170 100644 --- a/src/osgPlugins/CMakeLists.txt +++ b/src/osgPlugins/CMakeLists.txt @@ -105,7 +105,7 @@ ENDIF() IF(JASPER_FOUND) ADD_PLUGIN_DIRECTORY(jp2) ENDIF() -IF(OPENEXR_FOUND AND ZLIB_FOUND AND OSG_CPP_EXCEPTIONS_AVAILABLE) +IF(OpenEXR_FOUND AND ZLIB_FOUND AND OSG_CPP_EXCEPTIONS_AVAILABLE) ADD_PLUGIN_DIRECTORY(exr) ENDIF() IF(GIFLIB_FOUND) diff --git a/src/osgPlugins/exr/CMakeLists.txt b/src/osgPlugins/exr/CMakeLists.txt index e6b67e08bdf..bb5752bfbe8 100644 --- a/src/osgPlugins/exr/CMakeLists.txt +++ b/src/osgPlugins/exr/CMakeLists.txt @@ -1,9 +1,7 @@ -INCLUDE_DIRECTORIES( ${ILMBASE_INCLUDE_DIR}/OpenEXR ) -INCLUDE_DIRECTORIES( ${OPENEXR_INCLUDE_DIR}/OpenEXR ) - SET(TARGET_SRC ReaderWriterEXR.cpp ) -SET(TARGET_LIBRARIES_VARS ${OPENEXR_LIBRARIES_VARS} ${ILMBASE_LIBRARIES_VARS} ZLIB_LIBRARIES) +SET(OPENEXR_LIBRARIES_VARS OpenEXR::OpenEXR) +SET(TARGET_LIBRARIES_VARS OPENEXR_LIBRARIES_VARS ZLIB_LIBRARIES) IF(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") REMOVE_CXX_FLAG(-Wshadow) diff --git a/src/osgPlugins/exr/ReaderWriterEXR.cpp b/src/osgPlugins/exr/ReaderWriterEXR.cpp index 7132e97f881..bea1483afe1 100644 --- a/src/osgPlugins/exr/ReaderWriterEXR.cpp +++ b/src/osgPlugins/exr/ReaderWriterEXR.cpp @@ -41,11 +41,11 @@ class C_IStream: public Imf::IStream { return _inStream->read(c,n).good(); }; - virtual Int64 tellg () + virtual uint64_t tellg () { return _inStream->tellg(); }; - virtual void seekg (Int64 pos) + virtual void seekg (uint64_t pos) { _inStream->seekg(pos); }; @@ -69,11 +69,11 @@ class C_OStream: public Imf::OStream { _outStream->write(c,n); }; - virtual Int64 tellp () + virtual uint64_t tellp () { return _outStream->tellp(); }; - virtual void seekp (Int64 pos) + virtual void seekp (uint64_t pos) { _outStream->seekp(pos); }; From 9685150763e8a9c984d36bb97b37b0d8acb53c66 Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Thu, 22 Jan 2026 21:58:17 +0100 Subject: [PATCH 2/2] Drop obsolete local FindOpenEXR.cmake and Findilmbase.cmake Signed-off-by: Andreas Sturmlechner --- CMakeModules/FindOpenEXR.cmake | 61 -------------------------------- CMakeModules/Findilmbase.cmake | 63 ---------------------------------- 2 files changed, 124 deletions(-) delete mode 100644 CMakeModules/FindOpenEXR.cmake delete mode 100644 CMakeModules/Findilmbase.cmake diff --git a/CMakeModules/FindOpenEXR.cmake b/CMakeModules/FindOpenEXR.cmake deleted file mode 100644 index 233be972b90..00000000000 --- a/CMakeModules/FindOpenEXR.cmake +++ /dev/null @@ -1,61 +0,0 @@ -# Locate OpenEXR -# This module defines -# OPENEXR_LIBRARY -# OPENEXR_FOUND, if false, do not try to link to OpenEXR -# OPENEXR_INCLUDE_DIR, where to find the headers -# -# $OPENEXR_DIR is an environment variable that would -# correspond to the ./configure --prefix=$OPENEXR_DIR -# -# Created by Robert Osfield. - - -FIND_PATH(OPENEXR_INCLUDE_DIR OpenEXR/ImfIO.h - $ENV{OPENEXR_DIR}/include - $ENV{OPENEXR_DIR} - ~/Library/Frameworks - /Library/Frameworks - /usr/local/include - /usr/include - /sw/include # Fink - /opt/local/include # DarwinPorts - /opt/csw/include # Blastwave - /opt/include - /usr/freeware/include -) - -# Macro to find exr libraries (deduplicating search paths) -# example: OPENEXR_FIND_VAR(OPENEXR_IlmImf_LIBRARY IlmImf) -MACRO(OPENEXR_FIND_VAR varname libname) - FIND_LIBRARY( ${varname} - NAMES ${libname} ${libname}-2_1 ${libname}-2_2 - PATHS - $ENV{OPENEXR_DIR}/lib - $ENV{OPENEXR_DIR} - ~/Library/Frameworks - /Library/Frameworks - /usr/local/lib - /usr/lib - /sw/lib - /opt/local/lib - /opt/csw/lib - /opt/lib - /usr/freeware/lib64 - ) -ENDMACRO(OPENEXR_FIND_VAR) - -# Macro to find exr libraries (and debug versions) -# example: OPENEXR_FIND(IlmImf) -MACRO(OPENEXR_FIND libname) - OPENEXR_FIND_VAR(OPENEXR_${libname}_LIBRARY ${libname}) - OPENEXR_FIND_VAR(OPENEXR_${libname}_LIBRARY_DEBUG ${libname}d) -ENDMACRO(OPENEXR_FIND) - -OPENEXR_FIND(IlmImf) - -SET(OPENEXR_FOUND "NO") -IF(OPENEXR_INCLUDE_DIR AND OPENEXR_IlmImf_LIBRARY) - SET(OPENEXR_LIBRARIES ${OPENEXR_IlmImf_LIBRARY} ) - SET(OPENEXR_LIBRARIES_VARS OPENEXR_IlmImf_LIBRARY ) - SET(OPENEXR_FOUND "YES") -ENDIF(OPENEXR_INCLUDE_DIR AND OPENEXR_IlmImf_LIBRARY) diff --git a/CMakeModules/Findilmbase.cmake b/CMakeModules/Findilmbase.cmake deleted file mode 100644 index 4b076c7c94b..00000000000 --- a/CMakeModules/Findilmbase.cmake +++ /dev/null @@ -1,63 +0,0 @@ -# Locate ILMBASE -# This module defines -# ILMBASE_LIBRARY -# ILMBASE_FOUND, if false, do not try to link to ILMBASE -# ILMBASE_INCLUDE_DIR, where to find the headers -# -# $ILMBASE_DIR is an environment variable that would -# correspond to the ./configure --prefix=$ILMBASE_DIR -# -# Created by Robert Osfield. - - -FIND_PATH(ILMBASE_INCLUDE_DIR OpenEXR/ImathVec.h - $ENV{ILMBASE_DIR}/include - $ENV{ILMBASE_DIR} - ~/Library/Frameworks - /Library/Frameworks - /usr/local/include - /usr/include - /sw/include # Fink - /opt/local/include # DarwinPorts - /opt/csw/include # Blastwave - /opt/include - /usr/freeware/include -) - -# Macro to find ilmbase libraries -# example: ILMBASE_FIND_VAR(OPENEXR_IlmThread_LIBRARY IlmThread) -MACRO(ILMBASE_FIND_VAR varname libname) - FIND_LIBRARY( ${varname} - NAMES ${libname} ${libname}-2_1 ${libname}-2_2 - PATHS - $ENV{ILMBASE_DIR}/lib - $ENV{ILMBASE_DIR} - ~/Library/Frameworks - /Library/Frameworks - /usr/local/lib - /usr/lib - /sw/lib - /opt/local/lib - /opt/csw/lib - /opt/lib - /usr/freeware/lib64 - ) -ENDMACRO(ILMBASE_FIND_VAR) - -# Macro to find exr libraries (and debug versions) -# example: ILMBASE_FIND(OPENEXR_IlmThread_LIBRARY IlmThread) -MACRO(ILMBASE_FIND libname) - ILMBASE_FIND_VAR(ILMBASE_${libname}_LIBRARY ${libname}) - ILMBASE_FIND_VAR(ILMBASE_${libname}_LIBRARY_DEBUG ${libname}d) -ENDMACRO(ILMBASE_FIND) - -ILMBASE_FIND(IlmThread) -ILMBASE_FIND(Iex) -ILMBASE_FIND(Half) - -SET(ILMBASE_FOUND "NO") -IF(ILMBASE_INCLUDE_DIR AND ILMBASE_IlmThread_LIBRARY AND ILMBASE_Iex_LIBRARY AND ILMBASE_Half_LIBRARY) - SET(ILMBASE_LIBRARIES ${ILMBASE_IlmThread_LIBRARY} ${ILMBASE_Half_LIBRARY} ${ILMBASE_Iex_LIBRARY} ) - SET(ILMBASE_LIBRARIES_VARS ILMBASE_IlmThread_LIBRARY ILMBASE_Half_LIBRARY ILMBASE_Iex_LIBRARY ) - SET(ILMBASE_FOUND "YES") -ENDIF(ILMBASE_INCLUDE_DIR AND ILMBASE_IlmThread_LIBRARY AND ILMBASE_Iex_LIBRARY AND ILMBASE_Half_LIBRARY)