Enhancement #1498

Encode version in library name

Added by Anonymous almost 11 years ago. Updated over 10 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 almost 11 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 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 of rsc0.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.

Also available in: Atom PDF