[Scons-users] SCons 2.3.6: SharedLibrary + SHLIBVERSION messes up with dependencies

Paweł Tomulik ptomulik at meil.pw.edu.pl
Mon Aug 10 10:31:19 EDT 2015


W dniu 10.08.2015 o 11:55, Paweł Tomulik pisze:
> After recent upgrade of SCons my projects can't be built anymore.
> 
> I use SharedLibrary builder with SHLIBVERSION argument, but now (2.3.6)
> the softlinks generated by SharedLibrary are not seen as dependency.
> 
> I attach a minimal example, that replicates the bug(?). The mini-project
> builds one shared library (libfoo.so) and one program (main) which uses
> the library. The Sconstruct is as simple as:
> 
> env = Environment()
> env.AppendUnique(CPPPATH = ['.'], LIBPATH = ['.'])
> env.Program('main.cpp', LIBS = ['foo'])
> env.SharedLibrary('foo', 'foo.cpp', SHLIBVERSION = '0.1.2')
> 
> 
> The dependency tree for this mini-project is the following:
> 
> +-.
>   +-SConstruct
>   +-foo.cpp
>   +-foo.hpp
>   +-foo.os
>   | +-foo.cpp
>   | +-/usr/bin/g++
>   +-libfoo.so
>   +-libfoo.so.0
>   | +-libfoo.so.0.1.2
>   |   +-foo.os
>   |     +-foo.cpp
>   |     +-/usr/bin/g++
>   +-libfoo.so.0.1
>   | +-libfoo.so.0.1.2
>   |   +-foo.os
>   |     +-foo.cpp
>   |     +-/usr/bin/g++
>   +-libfoo.so.0.1.2
>   | +-foo.os
>   |   +-foo.cpp
>   |   +-/usr/bin/g++
>   +-main
>   | +-main.o
>   | | +-main.cpp
>   | | +-foo.hpp
>   | | +-/usr/bin/g++
>   | +-/usr/bin/g++
>   +-main.cpp
>   +-main.o
>     +-main.cpp
>     +-foo.hpp
>     +-/usr/bin/g++
> 
> Without SHLIBVERSION the poject builds without problem, and the
> dependency tree is:
> 
> +-.
>   +-SConstruct
>   +-foo.cpp
>   +-foo.hpp
>   +-foo.os
>   | +-foo.cpp
>   | +-/usr/bin/g++
>   +-libfoo.so
>   | +-foo.os
>   |   +-foo.cpp
>   |   +-/usr/bin/g++
>   +-main
>   | +-main.o
>   | | +-main.cpp
>   | | +-foo.hpp
>   | | +-/usr/bin/g++
>   | +-/usr/bin/g++
>   | +-libfoo.so
>   |   +-foo.os
>   |     +-foo.cpp
>   |     +-/usr/bin/g++
>   +-main.cpp
>   +-main.o
>     +-main.cpp
>     +-foo.hpp
>     +-/usr/bin/g++
> 
> 
> Is this a bug, or am I doing a mistake?
> 
> 
> 
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
> 

Dependency tree generated by 2.3.1 with SHLIBVERSION:

+-.
  +-SConstruct
  +-foo.cpp
  +-foo.hpp
  +-foo.os
  | +-foo.cpp
  | +-/usr/bin/g++
  +-libfoo.so.0.1.2
  | +-foo.os
  |   +-foo.cpp
  |   +-/usr/bin/g++
  +-libfoo.so.0
  | +-libfoo.so.0.1.2
  |   +-foo.os
  |     +-foo.cpp
  |     +-/usr/bin/g++
  +-libfoo.so.0.1
  | +-libfoo.so.0.1.2
  |   +-foo.os
  |     +-foo.cpp
  |     +-/usr/bin/g++
  +-libfoo.so.0.1.2
  | +-libfoo.so.0.1.2
  |   +-foo.os
  |     +-foo.cpp
  |     +-/usr/bin/g++
  +-main
  | +-main.o
  | | +-main.cpp
  | | +-foo.hpp
  | | +-/usr/bin/g++
  | +-/usr/bin/g++
  | +-libfoo.so.0.1.2
  |   +-foo.os
  |     +-foo.cpp
  |     +-/usr/bin/g++
  +-main.cpp
  +-main.o
    +-main.cpp
    +-foo.hpp
    +-/usr/bin/g++


-- 
Pawel Tomulik


More information about the Scons-users mailing list