summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2008-12-10 14:25:18 (GMT)
committerSteven Knight <knight@baldmt.com>2008-12-10 14:25:18 (GMT)
commit2766fe209f8a25295455956337a4b1ff9730e32e (patch)
tree64e148d5103bfc9a3272a40afb95486ec9d6f7b3 /src/engine/SCons/Node
parent665765284f5de349b469c77fa384fb16ee56c4ce (diff)
downloadSCons-2766fe209f8a25295455956337a4b1ff9730e32e.zip
SCons-2766fe209f8a25295455956337a4b1ff9730e32e.tar.gz
SCons-2766fe209f8a25295455956337a4b1ff9730e32e.tar.bz2
Issue 1287: copy File attributes from the local Node to a Repository
Node so we identify shared object files in a Repository and can link them into a local shared library. (Matthew Wesley)
Diffstat (limited to 'src/engine/SCons/Node')
-rw-r--r--src/engine/SCons/Node/FS.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index 790d840..98efc7a 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -2834,6 +2834,19 @@ class File(Base):
(isinstance(node, File) or isinstance(node, Entry) \
or not node.is_derived()):
result = node
+ # Copy over our local attributes to the repository
+ # Node so we identify shared object files in the
+ # repository and don't assume they're static.
+ #
+ # This isn't perfect; the attribute would ideally
+ # be attached to the object in the repository in
+ # case it was built statically in the repository
+ # and we changed it to shared locally, but that's
+ # rarely the case and would only occur if you
+ # intentionally used the same suffix for both
+ # shared and static objects anyway. So this
+ # should work well in practice.
+ result.attributes = self.attributes
break
self._memo['rfile'] = result
return result