Enhancement #1498
Encode version in library name
Status: | Resolved | Start date: | 05/16/2013 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | - | % Done: | 100% | |
Category: | cmake | |||
Target version: | - |
Description
I suggest to encode the major+minor version in the library name, so that we have librsc0.9.so
instead of librsc.so
for example. This will make handling of parallel installations of different rsc versions and their pkgconfig files a lot easier.
Currently we can`t install librsc.so
because this would lead to conflicts between the different rsc versions, which all would install this file (e.g. during debian package install). We currently solve this by installing librsc.so.0.9
instead (on linux), which makes the pkgconfig file cumbersome, because we have to specify the full library path (see https://code.cor-lab.org/projects/rsc/repository/revisions/master/entry/rsc.pc.in).
Any objections?
Associated revisions
Encode rsc version into library name by default
- Library name is now rsc0.9 instead of rsc by default
- Encoding of rsc version in the library names, install pathes and pkgconfig file can be disabled via cmake user config flag ENCODE_VERSION
- Both setups tested via automated pkgconfig test and downstream builds
History
#1 Updated by J. Wienke almost 11 years ago
I think Stefan Herbrechtsmeier already reported this (maybe for RSB), but I cannot find that issue right now.
#2 Updated by S. Herbrechtsmeier almost 11 years ago
We have Tasks #1452.
The full library path is also bad for cross compiling. Additionally the version behind the so is reserved for the SOVERSION and shouldn't used for the release version.
At the moment it is unclear for me how you handle conflicts between the different pkg-config files (rsc.pc).
I would prefer if we can use a switch for the version in the library name to make it optional.
#3 Updated by Anonymous almost 11 years ago
At the moment it is unclear for me how you handle conflicts between the different pkg-config files (rsc.pc).
At the moment, the pkgconfig file is named rsc0.9.pc
, so also the release version encoded.
I would prefer if we can use a switch for the version in the library name to make it optional.
This can be done, no problem. In this case, should then also the pkgconfig file be named rsc.pc
instead of rsc0.9.pc
?
#4 Updated by Anonymous almost 11 years ago
- Status changed from Feedback to In Progress
- Assignee changed from J. Wienke to Anonymous
#5 Updated by S. Herbrechtsmeier almost 11 years ago
I would prefer if we can use a switch for the version in the library name to make it optional.
This can be done, no problem. In this case, should then also the pkgconfig file be named
rsc.pc
instead ofrsc0.9.pc
?
Yes, please make all version in the names optional.
#6 Updated by Anonymous almost 11 years ago
- Status changed from In Progress to Resolved
- % Done changed from 0 to 100
Applied in changeset rsc|commit:506d590ce1ddc637a3a260bd978b1515adb3c54d.
#7 Updated by S. Herbrechtsmeier over 10 years ago
The changes to disable the version need to be applied to the other projects (rsb, rst) as well.
#8 Updated by J. Wienke over 10 years ago
This should actually be the case for rsb and rst. Where do you see conflicts?
#9 Updated by S. Herbrechtsmeier over 10 years ago
The ENCODE_VERSION option is not available in rsb-cpp, rst-cpp and rst-proto.