Enhancement #1127
Make multiple RSC versions installable in parallel
Status: | Resolved | Start date: | 08/03/2012 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | J. Wienke | % Done: | 100% | |
Category: | cmake | |||
Target version: | Robotics Service Bus - rsb-0.9 |
Description
Since the shared objects are already versioned, this should be achievable by installing headers into versioned directories. E.g. /usr/include/rsc-0.8
.
Associated revisions
Make RSC installable in parallel with several versions refs #1127 This means: * provide a subdirectory for include files * install share files in a versioned subfolder * rename the pkg-config file to rsc0.X.pc (this breaks backwards compatibility) * fix pkg-config and cmake config files to include the new directories
Signed-off-by: Johannes Wienke <languitar@semipol.de>
Use the fully versioned so file in pkg-config to really allow parallel installations.
As the hacked generation of the pc file really only works on linux, do not build the pc file on other platforms
fixes #1127
Do not install an "unversioned" symlink to the library to prevent clashes between different versions of RSC.
refs #1127
History
#1 Updated by J. Wienke over 11 years ago
- Status changed from New to In Progress
#2 Updated by J. Wienke over 11 years ago
- File multiple-install.patch added
Attached is a patch which should allow to install multiple versions of RSC. However, especially with pkg-config this changes backwards compatibility as the file has to be named with the version in its name. Jan, can you look if this fix is really correct and acceptable?
#3 Updated by J. Moringen over 11 years ago
- File 0001-Make-RSC-installable-in-parallel-with-several-versio.patch added
- File 0002-Fixed-quoting-in-src-CMakeLists.txt.patch added
Apart from the very minor changes in the attached files, the patch looks fine to me. I tried it and it seemed to work.
However, I noticed the following problem:
Installing: /homes/jmoringe/opt-x86_64/rsc/lib/librsc.so
What should we do about this?
#4 Updated by J. Wienke over 11 years ago
We can't do anything. The usual cmake logic always redirects the symlink. Anyhow, the cmake config file will point to the specific version, not the general link.
What I am not sure about is how to create this behavior also in the pkg-config file.
#5 Updated by J. Wienke over 11 years ago
Attached is a patch which hacks using fully versioned libraries in pc files. Should we also disable pc files on MAC? Won't work right now.
#6 Updated by J. Moringen over 11 years ago
Debian packages will still not be installable in parallel due to the duplicate shared object file.
#7 Updated by J. Wienke over 11 years ago
Shouldn't cpack ignore this and instead call libtool?
#8 Updated by J. Wienke over 11 years ago
Anyway, I don't think this is an issue we should directly care for generally, but only for debian packaging.
#9 Updated by J. Wienke over 11 years ago
- Status changed from In Progress to Resolved
- % Done changed from 0 to 100
Applied in changeset rsc|commit:36ceb37a943dd002bac0f4653b5c5dacf911ebca.