As an introduction I’m the developer who maintains the ROS
wrapper of Eigen. As we are approaching our next release we have quite
a few developers who want Eigen3 to be integrated into the upcoming
release. However I have a problem in that several of our core libraries
use Eigen2 and many packages built on top of them use Eigen2 as well.
Because Eigen3 and Eigen2 are API breaking I would like to be able to
install them side by side so as to provide a period where developers can
transition from Eigen2 to Eigen3. We have found a temporary way to do
this which involves patching all namespaces, include guards, and macros
inside Eigen3 such that none of them collide with Eigen2. However doing
this is a problem for it means that our installation of Eigen3 is not
the same as the official released version, and any library written
against the released version is not compatible with our mangled version.
We’d really like to be able to support both Eigen2 and Eigen3 to
allow a transition period for existing software using Eigen2. Has
anyone thought about how to deal with this migration and have a
suggestion about how to proceed?
Thanks, Tully
BTW for scale I have several thousand lines
of code using Eigen2 by name in our indexed repositories. And I know
that there are many projects building on top of our software which use
our core libraries and consequently I expect are also using Eigen2.
Also we rely on external libraries which use Eigen2 natively such as
kdl and opencv.