I'm distributing a shared library (C++) and a python module that uses this library. I build a modified version of Bullet Physics Library (as a CMake subproject).
I only use Bullet classes and functions in one file bullet_interface.cpp
and all the Bullet stuff is hidden inside namespace { ... }
.
The problem is that some other libraries require Bullet as a system dependency and link to the system version of Bullet. In fact, one of the dependencies of my library (libopenrave
) exports Bullet symbols. (More specifically, it sometimes dynamically loads a plugin that exports Bullet symbols).
I'm wondering if there's a way to build my library so bullet_interface.cpp
uses the correct Bullet functions, but then my library doesn't make any of the Bullet symbols visible.
I can't use the system bullet because I had to make changes to the source code.
One hacky solution would be to rename all of the Bullet functions and classes using a search and replace (almost all contain the string "bt"). Is there a better way?
Bullet
library and use THAT as the system library. – Alfredoalfresco