Skip to content

Installing both C++ API and Python bindings #2007

@jfpanisset

Description

@jfpanisset

I am creating a Conan recipe for OTIO for the aswf-docker project and I want to build and install both the C++ and Python APIs. I believe this means configuring with:

-DOTIO_CXX_INSTALL=ON
-DOTIO_PYTHON_INSTALL=ON

At lines 55-112 of the top level CMakeLists.txt, if OTIO_PYTHON_INSTALL is set, libopentime.so and libopentimelineio.so end up getting installed somewhere like /usr/local/lib/python3.13/site-packages/opentimelineio/

This may be surprising for C++ clients which would expect to find libopentime.so and libopentimelineio.so in /usr/local/lib/.

I can see how when building a Python wheel, it would be advantageous to package both the C++ DSOs as well as the pybind11 wrapper DSOs in the same place, but for a non-wheels build, it seems it would be preferable to have the C++ DSOs end up in /usr/local/lib and have the pybind11 wrapper DSOs link against those, either relying on rpath or LD_LIBRARY_PATH.

Should there be (or is there) a mechanism which would differentiate a build for the purposes of creating a Python wheel from a non wheel build?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions