You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm building OTIO against an external Imath distribution (i.e. OTIO_FIND_IMATH=ON), and it looks like the _otio Python extension module is being linked directly against the Imath lib, leading to the following runtime error:
> python -c 'import opentimelineio'
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/luma/dev/ruschn/rez-release/opentimelineio/0.0.cxx17/platform-linux/gcc-9.3.1/python-3.9/python/opentimelineio/__init__.py", line 14, in <module>
from . import (
File "/luma/dev/ruschn/rez-release/opentimelineio/0.0.cxx17/platform-linux/gcc-9.3.1/python-3.9/python/opentimelineio/opentime.py", line 4, in <module>
from . _opentime import ( # noqa
ImportError: libImath-3_1.so.29: cannot open shared object file: No such file or directory
Here is the patchelf output for the _otio library:
Imath is being located via the CMAKE_PREFIX_PATH environment variable, which includes the directory containing the Imath/ImathConfig.cmake file.
Additional Note: It looks like the opentime Python extension module may (unnecessarily?) link against libopentimelineio. This may warrant a separate issue.
The text was updated successfully, but these errors were encountered:
You are right, opentime should't link against opentimelineio. I haven't seen that reported before, I wonder what's up.
Yeah, this one is a bit of a mystery, and may be due to the revision I'm building from. I'll keep poking around and open a separate issue if I can prove it. :)
The transitive dependence should be specifically that the include path to Imath is public ~ does cmake have a way to do that?
In an Imath 3.x-only world, you could use Imath::ImathConfig instead of Imath::Imath as the public link target, and then Imath::Imath as a private target, though the redundancy is unfortunate.
I'm building OTIO against an external
Imath
distribution (i.e.OTIO_FIND_IMATH=ON
), and it looks like the_otio
Python extension module is being linked directly against theImath
lib, leading to the following runtime error:Here is the
patchelf
output for the_otio
library:If I manually remove the direct dependency on
libImath-3_1.so.29
, the error is resolved:Looking at the CMake build configuration, I'm fairly certain this is because
Imath
is included in the public link interface for theopentimelineio
target (https://github.com/AcademySoftwareFoundation/OpenTimelineIO/blob/main/src/opentimelineio/CMakeLists.txt#L88-L89), and thus becomes a transitive dependency when theopentimelineio-bindings
target is linked against it.To Reproduce
Versions
devtoolset-9
RPM)CMake Arguments
Imath is being located via the
CMAKE_PREFIX_PATH
environment variable, which includes the directory containing theImath/ImathConfig.cmake
file.Additional Note: It looks like the
opentime
Python extension module may (unnecessarily?) link againstlibopentimelineio
. This may warrant a separate issue.The text was updated successfully, but these errors were encountered: