openexr: "IlmImf-2_3.dll" shared library is not built anymore in 2.3.0.

Hi,

We are on Windows and I built OpenEXR 2.3.0 a few weeks ago to update from our 2.2.0 version, so far so good until today when I tried to launch oiiotool in our subsequently updated OpenImageIO 1.8.17 version. It complained about missing IlmImf-2_3.dll which surprised me:

image

However, when looking at our build, there is indeed no shared library, a static IlmImf-2_3.lib was built instead.

At first glance, there is nothing really specific in our build script that could have caused that:

            local('call vcbuildtools.bat amd64 && '
                  'cd /d {0} && '
                  'cmake '
                  '-DCMAKE_INSTALL_PREFIX={1} '
                  '-DOPENEXR_BUILD_PYTHON_LIBS=0 '
                  '-DZLIB_ROOT={2} '
                  '-DBOOST_ROOT={3} '
                  '-G "Visual Studio 14 2015 Win64" '
                  '-T v140,host=x64'.format(
                      build_directory,
                      RELEASE_DIRECTORY,
                      os.path.join(os.environ['REZ_ZLIB_ROOT'], 'zlib'),
                      os.path.join(os.environ['REZ_BOOST_ROOT'], 'boost'),
                  ))

Any help would be appreciated!

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 15 (7 by maintainers)

Most upvoted comments

Ok, that was just edited between my comment and now, but that good to know ! Updating my repositories and testing !

Hi,

I recently noticed the IlmImf dll is incorrectly installed (on my Windows machine) to a root ‘bin’ folder: for instance if I build from somewhere in my C: drive, IlmImf-2_3.dll is installed to C:/bin/IlmImf-2_3.dll (for me it wasn’t that it’s not built, it was just incorrectly installed)

I fixed this by applying the following patch (applied on the v2.3.0 tag):

diff --git a/OpenEXR/IlmImf/CMakeLists.txt b/OpenEXR/IlmImf/CMakeLists.txt
index e1a8740..d31cf68 100644
--- a/OpenEXR/IlmImf/CMakeLists.txt
+++ b/OpenEXR/IlmImf/CMakeLists.txt
@@ -2,14 +2,6 @@
 
 SET(CMAKE_INCLUDE_CURRENT_DIR 1)
 
-IF (WIN32)
-  SET(RUNTIME_DIR ${OPENEXR_PACKAGE_PREFIX}/bin)
-  SET(WORKING_DIR ${RUNTIME_DIR})
-ELSE ()
-  SET(RUNTIME_DIR ${OPENEXR_PACKAGE_PREFIX}/lib)
-  SET(WORKING_DIR .)
-ENDIF ()
-
 SET(BUILD_B44EXPLOGTABLE OFF)
 IF (NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/b44ExpLogTable.h")
   SET(BUILD_B44EXPLOGTABLE ON)

I also noticed that the CMake scripts completely changed in 2.4.0, so maybe the problem is already fixed in that version.

Anyway @KelSolaar if you didn’t fix your problem, you might want to try my patch, my guess is you have the exact same problem 😃

And for trying v2.4.0, I’d love, but unfortunately I’m also kinda trying to follow the vfxplatforms.com references …