Skip to content

Fix missing cycloneddsidl shared library for STANDALONE_WHEELS=1#324

Open
tonichedgehog wants to merge 2 commits intoeclipse-cyclonedds:masterfrom
tonichedgehog:master
Open

Fix missing cycloneddsidl shared library for STANDALONE_WHEELS=1#324
tonichedgehog wants to merge 2 commits intoeclipse-cyclonedds:masterfrom
tonichedgehog:master

Conversation

@tonichedgehog
Copy link
Copy Markdown

I find the ability to build a standalone Python wheel of CycloneDDS very useful, especially for use in non-networked environments. I also appreciate that I can build the wheel for a version of the CycloneDDS C library that I have configured
and built for my purposes.

But, when building a standalone wheel of CycloneDDS with pip:

export STANDALONE_WHEELS=1
export CYCLONEDDS_HOME=$HOME/local
python -m pip wheel --no-deps .

The cycloneddsidl shared library is missing from the the wheel. Consequently, when the wheel is installed, it cannot be used to process idl files without having an installation of the cycloneDDS C library in the users $PATH. This MR contains 2 commits that tries to address this:

  • The 1:st commit adds the cycloneddsidl shared library to the list of files that are to be copied into the wheel by shutils.

  • On Linux, blindly copying libddsc.so into the wheel is not sufficient, since idlc is linked to libddsc.so.11. So the 2:nd commit adds some logic to deduce library SONAME, and copy those files into the wheel instead of the (resolved) symlinks.

Presumably, the same problem applies to security_libs, but that I have not tested. I also have no idea if the changes interfere with cibuildwheel. But please let me now, perhaps that can be worked around. I think this should also close #283.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Question on building self-contained wheels

1 participant