Enhancement #1498

Encode version in library name

Added by Anonymous over 8 years ago. Updated almost 8 years ago.

Status:ResolvedStart date:05/16/2013
Priority:NormalDue 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

Revision 506d590c
Added by Arne Nordmann over 8 years ago

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

fixes #1498
fixes #1452

History

#1 Updated by J. Wienke over 8 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 over 8 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 over 8 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 over 8 years ago

  • Status changed from Feedback to In Progress
  • Assignee changed from J. Wienke to Anonymous

#5 Updated by S. Herbrechtsmeier over 8 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 of rsc0.9.pc?

Yes, please make all version in the names optional.

#6 Updated by Anonymous over 8 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 almost 8 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 almost 8 years ago

This should actually be the case for rsb and rst. Where do you see conflicts?

#9 Updated by S. Herbrechtsmeier almost 8 years ago

The ENCODE_VERSION option is not available in rsb-cpp, rst-cpp and rst-proto.

Also available in: Atom PDF