diff options
author | Paweł Tomulik <ptomulik@meil.pw.edu.pl> | 2015-09-20 17:55:34 (GMT) |
---|---|---|
committer | Paweł Tomulik <ptomulik@meil.pw.edu.pl> | 2015-09-20 17:55:34 (GMT) |
commit | ffcb8963212db0e83b79c9cbb584ed6ff3da837a (patch) | |
tree | 0071f376ef6153dd9f2c0c8f0bc814a0c73827a4 /src/engine/SCons/Tool/__init__.py | |
parent | 26f6e3f56d9741cc91cbe034a0e43d91e0fac6a3 (diff) | |
download | SCons-ffcb8963212db0e83b79c9cbb584ed6ff3da837a.zip SCons-ffcb8963212db0e83b79c9cbb584ed6ff3da837a.tar.gz SCons-ffcb8963212db0e83b79c9cbb584ed6ff3da837a.tar.bz2 |
cyglink: fix for shlib symlink not being cleaned correctly
Diffstat (limited to 'src/engine/SCons/Tool/__init__.py')
-rw-r--r-- | src/engine/SCons/Tool/__init__.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/engine/SCons/Tool/__init__.py b/src/engine/SCons/Tool/__init__.py index 96b9d98..7374687 100644 --- a/src/engine/SCons/Tool/__init__.py +++ b/src/engine/SCons/Tool/__init__.py @@ -596,19 +596,23 @@ def StringizeLibSymlinks(symlinks): else: return symlinks -def EmitLibSymlinks(env, symlinks, libnode): +def EmitLibSymlinks(env, symlinks, libnode, **kw): """Used by emitters to handle (shared/versioned) library symlinks""" Verbose = False # nodes involved in process... all symlinks + library nodes = list(set([ x for x,y in symlinks ] + [libnode])) + + clean_targets = kw.get('clean_targets', []) + if not SCons.Util.is_List(clean_targets): + clean_targets = [ clean_targets ] for link, linktgt in symlinks: env.SideEffect(link, linktgt) if(Verbose): print "EmitLibSymlinks: SideEffect(%r,%r)" % (link.get_path(), linktgt.get_path()) clean_list = filter(lambda x : x != linktgt, nodes) - env.Clean(linktgt, clean_list) + env.Clean(list(set([linktgt] + clean_targets)), clean_list) if(Verbose): print "EmitLibSymlinks: Clean(%r,%r)" % (linktgt.get_path(), map(lambda x : x.get_path(), clean_list)) |