summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Tool/__init__.py
diff options
context:
space:
mode:
authorPaweł Tomulik <ptomulik@meil.pw.edu.pl>2015-09-20 17:55:34 (GMT)
committerPaweł Tomulik <ptomulik@meil.pw.edu.pl>2015-09-20 17:55:34 (GMT)
commitffcb8963212db0e83b79c9cbb584ed6ff3da837a (patch)
tree0071f376ef6153dd9f2c0c8f0bc814a0c73827a4 /src/engine/SCons/Tool/__init__.py
parent26f6e3f56d9741cc91cbe034a0e43d91e0fac6a3 (diff)
downloadSCons-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__.py8
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))