[Scons-users] How to install a versioned shared library correctly?

edA-qa mort-ora-y eda-qa at disemia.com
Sat Aug 5 14:22:25 EDT 2017


I think I have it. I must use the fully versioned name for the source
file, so in this case:

libs = env.InstallVersionedLib( '.', env.Glob( '$ABS_BUILD_DIR/*.so.0.0.1' ) )


Then all the symlinks are created.

It's odd though, using just `*.so.0` isn't enough to create any links at
all. :/


On 05/08/17 20:15, edA-qa mort-ora-y wrote:
> Thanks to the help pointing me towards SONAME I have my linking working
> a bit better. I've set the `SHLIBVERSION` which appears to give all the
> libraries a default soname with versioned links.  It's a bit more than
> just having a specific soname, but it appears to be the correct way to go.
>
> With this I've also added an RPATH that includes $ORIGIN (I made another
> post about the escaping being wrong on that).
>
> Now my issue is with installing these shared libraries.
>
> I have a separate SConscript file for clarity. Therefore I refer to the
> libraries by name:
>
> libs = env.InstallVersionedLib( '.', env.Glob( '$ABS_BUILD_DIR/*.so' ) )
>
> The problem is that this installs only one specific version. I'm not
> sure how to get the links as well.  Do I need to explicitly list the
> versions, or should this be done automatically from the information
> contained in the so file?
>


-- 
edA-qa mort-ora-y 
http://mortoray.com/

Leaf - the language we always wanted
http://leaflang.org/



More information about the Scons-users mailing list