Boost logo

Boost-Build :

Subject: [Boost-build] Shared library tagging, dependencies and installing
From: João Luís Pinto (joaoluispinto_at_[hidden])
Date: 2012-07-24 14:13:04


Hi,

I have a project that includes a shared library and an executable,
which I am building in Linux.

Since I want to use shared library versioning according to the
lib<name>.so.major.minor.patch convention, I used tagging as
recommended in the documentation, using a tagging method modified from
the Jamroot distributed with Boost.

The library is being generated as expected, but I noticed the
following (for the sake of example, the lib is libmy.so.1.0.2):

- The executable, which links with the library, becomes dependent on
the fully versioned name of the library (libmy.so.1.0.2). According to
the "convention", it should depend on libmy.so.1.0, libmy.so.1 or
libmy.so (by choice).
- When I install the library, symlinks are created following the
convention, i.e libmy.so.1.0, libmy.so.1, libmy.so . From my tests,
this only happens when the lib name is tagged with a x.x.x suffix. If,
for example, it is tagged with only x.x as a suffix, no symlinks are
created.

My questions:

- Is the symlink creation process during install configurable, so
that, for example, I can tag the lib only with major.minor suffix (or
major, or none, according to choice) to make the executable depend on
this name, and them move it to a different (full major.minor.patch)
name upon install and create the correct symlinks?

- Is there another way to do it?

Thank you.


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk